home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 405_01 / flexpp / initscan.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-28  |  102.0 KB  |  3,319 lines

  1. #define YY_CHAR unsigned char
  2. #line 1 "/u/icdc/rdt/tools/lib/flexskel.cc"
  3. /* A lexical scanner generated by flex */
  4. /* scanner skeleton version:
  5.  * $Header: /usr/fsys/odin/a/vern/flex/RCS/flex.skel,v 2.16 90/08/03 14:09:36 vern Exp $
  6.  */
  7. /* MODIFIED FOR C++ CLASS BY Alain Coetmeur: coetmeur(at)icdc.fr */
  8. /* Note that (at) mean the 'at' symbol that I cannot write */
  9. /* because it is expanded to the class name */
  10. /* made at Informatique-CDC, Research&development department */
  11. /* company from the Caisse Des Depots et Consignations */
  12. /* institutional financial group  */
  13.  
  14. /* theses symbols are added before this file */
  15. /* #define YY_CHAR 'unsigned char' if 8bit or 'char' if 7bit */
  16. /* #define FLEX_DEBUG if debug mode */
  17. #define FLEX_SCANNER
  18. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  19. #ifdef c_plusplus
  20. #ifndef __cplusplus
  21. #define __cplusplus
  22. #endif
  23. #endif
  24. /* Old MSC, before c7 */
  25. #ifdef MSDOS
  26. #ifndef _MSDOS
  27. #define _MSDOS
  28. #endif
  29. #endif
  30. /* turboc */
  31. #ifdef __MSDOS__
  32. #ifndef _MSDOS
  33. #define _MSDOS
  34. #endif
  35. #endif
  36.  
  37. #ifdef __cplusplus
  38. #include <stdlib.h>
  39. #define YY_USE_CONST
  40. #define YY_USE_PROTOS
  41. #ifndef YY_USE_CLASS
  42. #define YY_USE_CLASS
  43. #endif
  44. #ifndef _MSDOS
  45. #include <osfcn.h>
  46. #endif
  47. #else   /* ! __cplusplus */
  48. #ifdef __STDC__
  49. #ifdef __GNUC__
  50. #include <stddef.h>
  51. void *malloc( size_t );
  52. void free( void* );
  53. int read();
  54. #else
  55. #include <stdlib.h>
  56. #endif  /* __GNUC__ */
  57. #define YY_USE_PROTOS
  58. #define YY_USE_CONST
  59. #endif  /* __STDC__ */
  60. #endif  /* ! __cplusplus */
  61. #ifdef __TURBOC__
  62. #define YY_USE_CONST
  63. #endif
  64. #include <stdio.h>
  65.  
  66.  
  67. /*********************************************/
  68. /* COMPILER DEPENDENT   MACROS               */
  69. /*********************************************/
  70. /* use prototypes in function declarations */
  71. /* the "const" storage-class-modifier is valid */
  72. #ifndef YY_USE_CONST
  73. #define const
  74. #endif
  75. /* use prototypes in function declarations */
  76. #ifndef YY_PROTO
  77. #ifdef YY_USE_PROTOS
  78. #define YY_PROTO(proto) proto
  79. #else
  80. #define YY_PROTO(proto) ()
  81. #endif
  82. #endif
  83.  
  84.  
  85. /*********************/
  86. /* parameters        */
  87.  
  88. /* amount of stuff to slurp up with each read */
  89. #ifndef YY_READ_BUF_SIZE
  90. #define YY_READ_BUF_SIZE 8192
  91. #endif
  92. /* size of default input buffer */
  93. #ifndef YY_BUF_SIZE
  94. #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) 
  95. #endif
  96.  
  97. /***********************************/
  98. /* to be redefined for application */
  99.  
  100. /* returned upon end-of-file */
  101. #define YY_END_TOK 0
  102. /* no semi-colon after return; correct usage is to write "yyterminate();" -
  103.  * we don't want an extra ';' after the "return" because that will cause
  104.  * some compilers to complain about unreachable statements.
  105.  */
  106. #define yyterminate() return ( YY_NULL )
  107.  
  108. /* code executed at the end of each rule */
  109. #define YY_BREAK break;
  110.  
  111. /* #define YY_USER_ACTION */
  112. /* #define YY_USER_INIT */
  113.  
  114.  
  115. #ifndef YY_USE_CLASS
  116. /* copy whatever the last rule matched to the standard output */
  117. /* cast to (char *) is because for 8-bit chars, yy___text is (unsigned char *) */
  118. /* this used to be an fputs(), but since the string might contain NUL's,
  119.  * we now use fwrite()
  120.  */
  121. #define ECHO (void) fwrite( (char *) yy___text, yy___leng, 1, yy___out )
  122.  
  123. /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  124.  * is returned in "result".
  125.  */
  126. #ifdef _MSDOS
  127. #define YY_INPUT(buf,result,max_size) \
  128.     if ( (result = fread(buf,1,max_size,yy___in)) < 0 ) \
  129.         YY_FATAL_ERROR( "fread() in flex scanner failed" );
  130. #else
  131. #define YY_INPUT(buf,result,max_size) \
  132.     if ( (result = read( fileno(yy___in), (char *) buf, max_size )) < 0 ) \
  133.         YY_FATAL_ERROR( "read() in flex scanner failed" );
  134.  
  135. #endif
  136. /* report a fatal error */
  137.  
  138. /* The funky do-while is used to turn this macro definition into
  139.  * a single C statement (which needs a semi-colon terminator).
  140.  * This avoids problems with code like:
  141.  *
  142.  *      if ( something_happens )
  143.  *              YY_FATAL_ERROR( "oops, the something happened" );
  144.  *      else
  145.  *              everything_okay();
  146.  *
  147.  * Prior to using the do-while the compiler would get upset at the
  148.  * "else" because it interpreted the "if" statement as being all
  149.  * done when it reached the ';' after the YY_FATAL_ERROR() call.
  150.  */
  151.  
  152. #define YY_FATAL_ERROR(msg) \
  153.     do \
  154.         { \
  155.         (void) fputs( msg, stderr ); \
  156.         (void) putc( '\n', stderr ); \
  157.         exit( 1 ); \
  158.         } \
  159.     while ( 0 )
  160.  
  161. /* default yywrap function - always treat EOF as an EOF */
  162. #define yywrap() 1
  163.  
  164.  
  165. /* default declaration of generated scanner - a define so the user can
  166.  * easily add parameters
  167.  */
  168. #define YY_DECL int yylex YY_PROTO(( void )) 
  169. #else 
  170. /* c++ */
  171. #define ECHO yy___echo()
  172. #define YY_INPUT(buf,result,max_size) \
  173.     if ( yy___input((char *)buf, result,max_size) < 0 ) \
  174.         YY_FATAL_ERROR( "YY_INPUT() in flex scanner failed" );
  175.  
  176. #define YY_FATAL_ERROR(msg) yy___fatal_error(msg)
  177. #define yywrap() yy___wrap()
  178.  
  179. #endif
  180. /***********************************/
  181. /* not to be changed */
  182. #define YY_NULL 0
  183. #define YY_END_OF_BUFFER_CHAR 0
  184. /* special action meaning "start processing a new file" */
  185. #define YY_NEW_FILE yy___newfile 
  186. /* enter a start condition.  This macro really ought to take a parameter,
  187.  * but we do it the disgusting crufty way forced on us by the ()-less
  188.  * definition of BEGIN
  189.  */
  190. #define BEGIN yy_start = 1 + 2 *
  191.  
  192. /* action number for EOF rule of a given start state */
  193. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  194.  
  195.  
  196.  
  197. /* % section 1 definitions go here */ 
  198. #line 1 "scan.l"
  199. #define INITIAL 0
  200. /* scan.l - scanner for flex input */
  201. #line 5 "scan.l"
  202. /*-
  203.  * Copyright (c) 1990 The Regents of the University of California.
  204.  * All rights reserved.
  205.  *
  206.  * This code is derived from software contributed to Berkeley by
  207.  * Vern Paxson.
  208.  * 
  209.  * The United States Government has rights in this work pursuant
  210.  * to contract no. DE-AC03-76SF00098 between the United States
  211.  * Department of Energy and the University of California.
  212.  *
  213.  * Redistribution and use in source and binary forms are permitted provided
  214.  * that: (1) source distributions retain this entire copyright notice and
  215.  * comment, and (2) distributions including binaries display the following
  216.  * acknowledgement:  ``This product includes software developed by the
  217.  * University of California, Berkeley and its contributors'' in the
  218.  * documentation or other materials provided with the distribution and in
  219.  * all advertising materials mentioning features or use of this software.
  220.  * Neither the name of the University nor the names of its contributors may
  221.  * be used to endorse or promote products derived from this software without
  222.  * specific prior written permission.
  223.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
  224.  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  225.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  226.  */
  227.  
  228. #ifndef lint
  229. static char rcsid[] =
  230.     "@(#) $Header: /usr/fsys/odin/a/vern/flex/RCS/scan.l,v 2.9 90/06/27 23:48:34 vern Exp $ (LBL)";
  231. #endif
  232.  
  233. #undef yywrap
  234.  
  235. #include "flexdef.h"
  236. #include "parse.h"
  237.  
  238. #define HEADER_ECHO fprintf(headerfile,"%s",yytext )
  239. #define ACTION_ECHO fprintf( temp_action_file, "%s", yytext )
  240. #define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" );
  241.  
  242. #undef YY_DECL
  243. #define YY_DECL \
  244.     int flexscan()
  245.  
  246. #define RETURNCHAR \
  247.     yylval = yytext[0]; \
  248.     return ( CHAR );
  249.  
  250. #define RETURNNAME \
  251.     (void) strcpy( nmstr, (char *) yytext ); \
  252.     return ( NAME );
  253.  
  254. #define PUT_BACK_STRING(str, start) \
  255.     for ( i = strlen( (char *) (str) ) - 1; i >= start; --i ) \
  256.         unput((str)[i])
  257.  
  258. #define CHECK_REJECT(str) \
  259.     if ( all_upper( str ) ) \
  260.         reject = true;
  261.  
  262. #define CHECK_YYMORE(str) \
  263.     if ( all_lower( str ) ) \
  264.         yymore_used = true;
  265. #define SECT2 1
  266. #define SECT2PROLOG 2
  267. #define SECT3 3
  268. #define CODEBLOCK 4
  269. #define PICKUPDEF 5
  270. #define SC 6
  271. #define CARETISBOL 7
  272. #define NUM 8
  273. #define QUOTE 9
  274. #define FIRSTCCL 10
  275. #define CCL 11
  276. #define ACTION 12
  277. #define RECOVER 13
  278. #define BRACEERROR 14
  279. #define C_COMMENT 15
  280. #define ACTION_COMMENT 16
  281. #define ACTION_STRING 17
  282. #define PERCENT_BRACE_ACTION 18
  283. #define USED_LIST 19
  284. #define CODEBLOCK_2 20
  285. #define XLATION 21
  286. #define HEADER_BLOC 22
  287. #define HEADER2_BLOC 23
  288. #define NAME_DECLARE 24
  289. #define DEFINE_DECLARE 25
  290. #define DEFINE_CONTENT 26
  291. #define YY_lex_FLEX_SCANNER
  292. #define YY_lex_CHAR unsigned char
  293. #line 1 "/u/icdc/rdt/tools/lib/flexskel.h"
  294. /* A lexical scanner header generated by flex */
  295. /* MODIFIED FOR C++ CLASS BY Alain Coetmeur: coetmeur(at)icdc.fr */
  296. /* Note that (at) mean the 'at' symbol that I cannot write */
  297. /* because it is expanded to the class name */
  298. /* made at Informatique-CDC, Research&development department */
  299. /* company from the Caisse Des Depots et Consignations */
  300.  
  301.  
  302. /*********************************************/
  303. /* SYSTEM dependent declaration, includes... */
  304. /*********************************************/
  305. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  306. #ifdef c_plusplus
  307. #ifndef __cplusplus
  308. #define __cplusplus
  309. #endif
  310. #endif
  311. #ifdef __cplusplus
  312. #ifndef YY_USE_PROTOS
  313. #define YY_USE_PROTOS
  314. #endif
  315. #ifndef YY_USE_CLASS
  316. #define YY_USE_CLASS
  317. #endif
  318. #else    /* ! __cplusplus */
  319. #ifdef __STDC__
  320. #ifdef __GNUC__
  321. #else
  322. #endif    /* __GNUC__ */
  323. #ifndef YY_USE_PROTOS
  324. #define YY_USE_PROTOS
  325. #endif
  326. #endif    /* __STDC__ */
  327. #endif    /* ! __cplusplus */
  328. /*********************************************/
  329. /* COMPILER DEPENDENT   MACROS               */
  330. /*********************************************/
  331. /* use prototypes in function declarations */
  332. #ifndef YY_PROTO
  333. #ifdef YY_USE_PROTOS
  334. #define YY_PROTO(proto) proto
  335. #else
  336. #define YY_PROTO(proto) ()
  337. #endif
  338. #endif
  339. #include <stdio.h>
  340.  
  341.  
  342.  
  343.  
  344. /* % here is the declaration from section1 %header{  */ 
  345. #line 86 "scan.l"
  346. #line 86 "scan.l"
  347. #line 562 "scan.l"
  348. #line 52 "/u/icdc/rdt/tools/lib/flexskel.h"
  349.  
  350.  
  351.  
  352. #ifndef YY_lex_TEXT
  353. #define YY_lex_TEXT yytext
  354. #endif
  355. #ifndef YY_lex_LENG
  356. #define YY_lex_LENG yyleng
  357. #endif
  358. #ifndef YY_lex_IN
  359. #define YY_lex_IN yyin
  360. #endif
  361. #ifndef YY_lex_OUT
  362. #define YY_lex_OUT yyout
  363. #endif
  364. #ifndef YY_lex_LEX_RETURN
  365. #define YY_lex_LEX_RETURN int
  366. #else
  367. #ifndef YY_lex_LEX_DEFINED
  368. #define YY_lex_LEX_DEFINED 
  369. #endif
  370. #endif
  371.  
  372. #ifndef YY_lex_LEX
  373. #define YY_lex_LEX yylex
  374. #else
  375. #ifndef YY_lex_LEX_DEFINED
  376. #define YY_lex_LEX_DEFINED 
  377. #endif
  378. #endif
  379.  
  380. #ifndef YY_lex_LEX_PARAM
  381. #ifndef YY_USE_PROTOS
  382. #define YY_lex_LEX_PARAM 
  383. #else
  384. #define YY_lex_LEX_PARAM void
  385. #endif
  386. #else
  387. #ifndef YY_lex_LEX_DEFINED
  388. #define YY_lex_LEX_DEFINED 
  389. #endif
  390. #endif
  391.  
  392. #ifndef YY_lex_LEX_PARAM_DEF
  393. #define YY_lex_LEX_PARAM_DEF
  394. #else
  395. #ifndef YY_lex_LEX_DEFINED
  396. #define YY_lex_LEX_DEFINED 
  397. #endif
  398. #endif
  399.  
  400. #ifndef YY_lex_RESTART
  401. #define YY_lex_RESTART yyrestart
  402. #endif
  403. #ifndef YY_lex_SWITCH_TO_BUFFER
  404. #define YY_lex_SWITCH_TO_BUFFER yy_switch_to_buffer
  405. #endif
  406. #ifndef YY_lex_LOAD_BUFFER_STATE
  407. #define YY_lex_LOAD_BUFFER_STATE yy_load_buffer_state
  408. #endif
  409.  
  410. #ifndef YY_lex_CREATE_BUFFER
  411. #define YY_lex_CREATE_BUFFER yy_create_buffer
  412. #ifndef YY_USE_CLASS
  413. #ifndef yy_new_buffer
  414. #define yy_new_buffer yy_create_buffer
  415. #endif
  416. #endif
  417. #endif
  418. #ifndef YY_lex_DELETE_BUFFER
  419. #define YY_lex_DELETE_BUFFER yy_delete_buffer
  420. #endif
  421. #ifndef YY_lex_INIT_BUFFER
  422. #define YY_lex_INIT_BUFFER yy_init_buffer
  423. #endif
  424. #ifdef YY_lex_FLEX_DEBUG
  425. #ifndef YY_lex_DEBUG
  426. #define YY_lex_DEBUG 1
  427. #endif
  428. #else
  429. #ifndef YY_lex_DEBUG
  430. #define YY_lex_DEBUG 0
  431. #endif
  432. #endif
  433.  
  434. #if YY_lex_DEBUG != 0
  435. #ifndef YY_lex_DEBUG_FLAG
  436. #define YY_lex_DEBUG_FLAG yy_flex_debug
  437. #endif
  438. #ifndef YY_lex_DEBUG_INIT
  439. #define YY_lex_DEBUG_INIT 1
  440. #endif
  441. #endif
  442.  
  443.  
  444.  
  445.  
  446. #ifndef YY_USE_CLASS
  447. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  448.  
  449. extern void YY_lex_RESTART YY_PROTO(( FILE *input_file ));
  450. extern void YY_lex_SWITCH_TO_BUFFER YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  451. extern void YY_lex_LOAD_BUFFER_STATE YY_PROTO(( void ));
  452. extern YY_BUFFER_STATE YY_lex_CREATE_BUFFER YY_PROTO(( FILE *file, int size ));
  453. extern void YY_lex_DELETE_BUFFER YY_PROTO(( YY_BUFFER_STATE b ));
  454. extern void YY_lex_INIT_BUFFER YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  455.  
  456. #if YY_lex_DEBUG != 0
  457. extern int YY_lex_DEBUG_FLAG ;
  458. #endif
  459. extern YY_lex_CHAR  *YY_lex_TEXT;
  460. extern int YY_lex_LENG;
  461. extern FILE *YY_lex_IN, *YY_lex_OUT;
  462. #ifdef YY_lex_LEX_DEFINED
  463. extern YY_lex_LEX_RETURN YY_lex_LEX ( YY_lex_LEX_PARAM )
  464. YY_lex_LEX_PARAM_DEF
  465. #else
  466. #ifndef YY_DECL
  467. extern YY_lex_LEX_RETURN YY_lex_LEX ( YY_lex_LEX_PARAM )
  468. YY_lex_LEX_PARAM_DEF
  469. #else
  470. /* no declaration if oldstyle flex */
  471. #endif
  472. #endif
  473. #else
  474.  
  475. #ifndef YY_lex_CLASS
  476. #define YY_lex_CLASS lex
  477. #endif
  478. #ifndef YY_lex_ECHO
  479. #define YY_lex_ECHO yy_echo
  480. #endif
  481. #ifdef YY_lex_ECHO_PURE
  482. #define YY_lex_ECHO_NOCODE
  483. #endif
  484. #ifndef YY_lex_ECHO_CODE
  485. #define YY_lex_ECHO_CODE fwrite( (char *) YY_lex_TEXT, YY_lex_LENG, 1, YY_lex_OUT );
  486. #endif
  487. #ifndef YY_lex_INPUT
  488. #define YY_lex_INPUT yy_input
  489. #endif
  490. #ifdef YY_lex_INPUT_PURE
  491. #define YY_lex_INPUT_NOCODE
  492. #endif
  493. #ifndef YY_lex_INPUT_CODE
  494. #define YY_lex_INPUT_CODE return result= fread(  buffer, 1,max_size,YY_lex_IN );
  495. #endif
  496. #ifdef YY_lex_FATAL_ERROR_PURE
  497. #define YY_lex_FATAL_ERRO_NOCODE
  498. #endif
  499. #ifndef YY_lex_FATAL_ERROR
  500. #define YY_lex_FATAL_ERROR yy_fatal_error
  501. #endif
  502. #ifndef YY_lex_FATAL_ERROR_CODE
  503. #define YY_lex_FATAL_ERROR_CODE fputs( msg, stderr );putc( '\n', stderr );exit( 1 );
  504. #endif
  505. #ifndef YY_lex_WRAP
  506. #define YY_lex_WRAP yy_wrap
  507. #endif
  508. #ifdef YY_lex_WRAP_PURE
  509. #define YY_lex_WRAP_NOCODE
  510. #endif
  511. #ifndef YY_lex_WRAP_CODE
  512. #define YY_lex_WRAP_CODE return 1;
  513. #endif
  514.  
  515.  
  516. #ifndef YY_lex_INHERIT
  517. #define YY_lex_INHERIT
  518. #endif
  519. #ifndef YY_lex_MEMBERS
  520. #define YY_lex_MEMBERS 
  521. #endif
  522. #ifndef YY_lex_CONSTRUCTOR_PARAM
  523. #define YY_lex_CONSTRUCTOR_PARAM
  524. #endif
  525. #ifndef YY_lex_CONSTRUCTOR_CODE
  526. #define YY_lex_CONSTRUCTOR_CODE
  527. #endif
  528. #ifndef YY_lex_CONSTRUCTOR_INIT
  529. #define YY_lex_CONSTRUCTOR_INIT
  530. #endif
  531. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  532.  
  533. class YY_lex_CLASS YY_lex_INHERIT
  534. {
  535.  private:/* data */
  536.  YY_lex_CHAR  *yy_c_buf_p;
  537.  YY_lex_CHAR  yy_hold_char;
  538.  int yy_n_chars;
  539.  int yy_init;
  540.  int yy_start;
  541.  int yy_did_buffer_switch_on_eof;
  542.  private: /* functions */
  543.  void yy_initialize();
  544.  int input();
  545.  int yyinput() {return input();};
  546.  int yy_get_next_buffer();
  547.  void yyunput( YY_lex_CHAR  c, YY_lex_CHAR  *buf_ptr );
  548.  /* use long instead of yy_state_type because it is undef */
  549.  long yy_get_previous_state_ ( void );
  550.  long yy_try_NUL_trans_  ( long current_state_ );
  551.  protected:/* non virtual */
  552.  YY_BUFFER_STATE yy_current_buffer;
  553.  void YY_lex_RESTART ( FILE *input_file );
  554.  void YY_lex_SWITCH_TO_BUFFER( YY_BUFFER_STATE new_buffer );
  555.  void YY_lex_LOAD_BUFFER_STATE( void );
  556.  YY_BUFFER_STATE YY_lex_CREATE_BUFFER( FILE *file, int size );
  557.  void YY_lex_DELETE_BUFFER( YY_BUFFER_STATE b );
  558.  void YY_lex_INIT_BUFFER( YY_BUFFER_STATE b, FILE *file );
  559.  protected: /* virtual */
  560.  virtual void YY_lex_ECHO()
  561. #ifdef YY_lex_ECHO_PURE
  562.   =0
  563. #endif
  564.   ;
  565.  virtual int  YY_lex_INPUT(char  *buf,int &result,int max_size)
  566. #ifdef YY_lex_INPUT_PURE
  567.   =0
  568. #endif
  569.   ;
  570.  virtual void  YY_lex_FATAL_ERROR(char *msg)
  571. #ifdef YY_lex_FATAL_ERROR_PURE
  572.   =0
  573. #endif
  574.   ;
  575.  virtual int  YY_lex_WRAP()
  576. #ifdef YY_lex_WRAP_PURE
  577.   =0
  578. #endif
  579.   ;
  580.  public:
  581.  YY_lex_CHAR  *YY_lex_TEXT;
  582.  int YY_lex_LENG;
  583.  FILE *YY_lex_IN, *YY_lex_OUT;
  584.  YY_lex_LEX_RETURN YY_lex_LEX ( YY_lex_LEX_PARAM);
  585.  YY_lex_CLASS(YY_lex_CONSTRUCTOR_PARAM) ;
  586. #if YY_lex_DEBUG != 0
  587.  int YY_lex_DEBUG_FLAG;
  588. #endif
  589.  public: /* added members */
  590.  YY_lex_MEMBERS 
  591. };
  592. #endif
  593.  
  594.  
  595.  
  596. /* declaration of externs for public use of yylex scanner */
  597.  
  598. /* % here is the declaration from section2 %header{ */ 
  599. #line 196 "/u/icdc/rdt/tools/lib/flexskel.cc"
  600.  
  601. #define yy___text YY_lex_TEXT
  602. #define yy___leng YY_lex_LENG
  603. #define yy___in YY_lex_IN
  604. #define yy___out YY_lex_OUT
  605. #define yy___newfile \
  606.     do \
  607.         { \
  608.         YY_lex_INIT_BUFFER( yy_current_buffer, yy___in ); \
  609.         YY_lex_LOAD_BUFFER_STATE(); \
  610.         } \
  611.     while ( 0 )
  612. #if YY_lex_DEBUG != 0
  613. #define yy___flex_debug YY_lex_DEBUG_FLAG
  614. #endif
  615.  
  616.  
  617. #ifdef YY_USE_CLASS
  618.  
  619. #define yy___echo YY_lex_ECHO
  620. #define yy___input YY_lex_INPUT
  621. #define yy___fatal_error YY_lex_FATAL_ERROR
  622. #define yy___wrap YY_lex_WRAP
  623.  
  624. #endif
  625.  
  626. /* done after the current pattern has been matched and before the
  627.  * corresponding action - sets up yy___text
  628.  */
  629. #define YY_DO_BEFORE_ACTION \
  630.     yy___text = yy_bp; \
  631. /* % code to fiddle yy___text and yy___leng for yymore() goes here */ \
  632.     yy___leng = yy_cp - yy_bp; \
  633.     yy_hold_char = *yy_cp; \
  634.     *yy_cp = '\0'; \
  635.     yy_c_buf_p = yy_cp;
  636.  
  637. #define EOB_ACT_CONTINUE_SCAN 0
  638. #define EOB_ACT_END_OF_FILE 1
  639. #define EOB_ACT_LAST_MATCH 2
  640.  
  641. /* return all but the first 'n' matched characters back to the input stream */
  642. #define yyless(n) \
  643.     do \
  644.         { \
  645.         /* undo effects of setting up yy___text */ \
  646.         *yy_cp = yy_hold_char; \
  647.         yy_c_buf_p = yy_cp = yy_bp + n; \
  648.         YY_DO_BEFORE_ACTION; /* set up yy___text again */ \
  649.         } \
  650.     while ( 0 )
  651.  
  652. #define unput(c) yyunput( c, yy___text )
  653.  
  654.  
  655.  
  656. struct yy_buffer_state
  657.     {
  658.     FILE *yy_input_file;
  659.  
  660.     YY_lex_CHAR *yy_ch_buf;               /* input buffer */
  661.     YY_lex_CHAR *yy_buf_pos;      /* current position in input buffer */
  662.  
  663.     /* size of input buffer in bytes, not including room for EOB characters */
  664.     int yy_buf_size;    
  665.  
  666.     /* number of characters read into yy_ch_buf, not including EOB characters */
  667.     int yy_n_chars;
  668.  
  669.     int yy_eof_status;          /* whether we've seen an EOF on this buffer */
  670. #define EOF_NOT_SEEN 0
  671.     /* "pending" happens when the EOF has been seen but there's still
  672.      * some text process
  673.      */
  674. #define EOF_PENDING 1
  675. #define EOF_DONE 2
  676.     };
  677.  
  678. /* we provide macros for accessing buffer states in case in the
  679.  * future we want to put the buffer states in a more general
  680.  * "scanner state"
  681.  */
  682.  
  683. #ifndef YY_USE_CLASS
  684.  
  685. #if YY_lex_DEBUG != 0
  686. int YY_lex_DEBUG_FLAG=YY_lex_DEBUG_INIT;
  687. #endif
  688. #define YY_CURRENT_BUFFER yy_current_buffer
  689. static YY_BUFFER_STATE yy_current_buffer;
  690. /* yy_hold_char holds the character lost when yy___text is formed */
  691. static YY_lex_CHAR yy_hold_char;
  692.  
  693. static int yy_n_chars;          /* number of characters read into yy_ch_buf */
  694.  
  695. /* GLOBAL */
  696. YY_lex_CHAR *yy___text;
  697. int yy___leng;
  698.  
  699. FILE *yy___in = (FILE *) 0, *yy___out = (FILE *) 0;
  700.  
  701. #ifdef __cplusplus
  702. static int yyinput YY_PROTO(( void ));
  703. #else
  704. static int input YY_PROTO(( void ));
  705. #endif
  706. /* these variables are all declared out here so that section 3 code can
  707.  * manipulate them
  708.  */
  709. /* points to current character in buffer */
  710. static YY_lex_CHAR *yy_c_buf_p = (YY_lex_CHAR *) 0;
  711. static int yy_init = 1;         /* whether we need to initialize */
  712. static int yy_start = 0;        /* start state number */
  713.  
  714. /* flag which is used to allow yywrap()'s to do buffer switches
  715.  * instead of setting up a fresh yy___in.  A bit of a hack ...
  716.  */
  717. static int yy_did_buffer_switch_on_eof;
  718.  
  719. static int yy_get_next_buffer YY_PROTO(( void ));
  720. static void yyunput YY_PROTO(( YY_lex_CHAR c, YY_lex_CHAR *buf_ptr ));
  721.  
  722. #else
  723. /* c++ */
  724. #ifndef YY_lex_ECHO_NOCODE
  725. void YY_lex_CLASS::yy___echo()
  726. {YY_lex_ECHO_CODE
  727. }
  728. #endif
  729. #ifndef YY_lex_INPUT_NOCODE
  730. int  YY_lex_CLASS::yy___input(char * buffer,int &result,int max_size)
  731. {YY_lex_INPUT_CODE
  732. }
  733. #endif
  734. #ifndef YY_lex_FATAL_ERROR_NOCODE
  735. void YY_lex_CLASS::yy___fatal_error(char *msg)
  736. {YY_lex_FATAL_ERROR_CODE
  737. }
  738. #endif
  739. #ifndef YY_lex_WRAP_NOCODE
  740. int  YY_lex_CLASS::yy___wrap()
  741. {YY_lex_WRAP_CODE
  742. }
  743. #endif
  744. void YY_lex_CLASS::yy_initialize()
  745. {
  746.  yy___in=0;yy___out=0;yy_init = 1;
  747.  yy_start=0;
  748.  yy___text=0;yy___leng=0;
  749.  yy_current_buffer=0;
  750.  yy_did_buffer_switch_on_eof=0;
  751.  yy_c_buf_p=0;yy_hold_char=0;yy_n_chars=0;
  752. #if YY_lex_DEBUG != 0
  753.  YY_lex_DEBUG_FLAG=YY_lex_DEBUG_INIT;
  754. #endif
  755. }
  756.  
  757. YY_lex_CLASS::YY_lex_CLASS(YY_lex_CONSTRUCTOR_PARAM) YY_lex_CONSTRUCTOR_INIT
  758. {yy_initialize();
  759.  YY_lex_CONSTRUCTOR_CODE;
  760. }
  761.  
  762. #endif
  763.  
  764.  
  765. #ifndef YY_USER_ACTION
  766. #define YY_USER_ACTION
  767. #endif
  768.  
  769. #ifndef YY_USER_INIT
  770. #define YY_USER_INIT
  771. #endif
  772.  
  773. /* % data tables for the DFA go here */ 
  774. #define YY_END_OF_BUFFER 147
  775. typedef int yy_state_type;
  776. static const short int yy_acclist[679] =
  777.     {   0,
  778.     16469,16469,  145,  145,  147,   23,  146,   11,   23,  146,
  779.        22,  146,   22,   23,  146,   23,  146,   20,   23,  146,
  780.         1,   11,   23,  146,   21,   22,  146,   21,   22,   23,
  781.       146,   23,  146,   23,  146,   23,  146,   19,   20,   23,
  782.       146,   92,  146,   84,   92,  146,16469, 8277,   93,  146,
  783.      8277,   92,   93,  146,   78,   92,  146,   92,  146,   91,
  784.        92,  146,   76,   92,  146,   92,  146,   92,  146,   92,
  785.       146,   75,   84,   92,  146,16469,   73, 8277,   86,   93,
  786.       146,   73, 8277,   86,   92,   93,  146,   92,  146,   77,
  787.        92,  146,  146,   71,  146,   71,  146,  145,  146,  145,
  788.  
  789.       146,  145,  146,   52,  146,   53,  146,   52,   53,  146,
  790.        52,  146,   52,  146,   52,  146,   52,  146,   55,  146,
  791.        54,  146,   56,  146,   56,  146,   98,  146,  146,   94,
  792.        98,  146,   95,   98,  146,   97,   98,  146,   99,  146,
  793.       113,  146,  114,  146,  113,  114,  146,  111,  113,  146,
  794.       110,  113,  146,  112,  113,  146,  100,  146,  102,  146,
  795.       102,  146,  101,  146,  100,  146,  106,  146,  105,  106,
  796.       146,  106,  146,  106,  146,  108,  146,  108,  146,  108,
  797.       146,  109,  146,  124,  131,  146,  130,  146,  130,  131,
  798.       146,  129,  131,  146,  131,  146,  131,  146,  125,  131,
  799.  
  800.       146,  125,  131,  146,  125,  131,  146,  122,  131,  146,
  801.       123,  131,  146,  146,   57,  146,   57,  146,  116,  146,
  802.       116,  146,  115,  146,   36,  146,   38,  146,   38,  146,
  803.        37,  146,  133,  136,  146,  135,  146,  135,  136,  146,
  804.       134,  136,  146,  137,  141,  146,  139,  146,  139,  141,
  805.       146,  140,  141,  146,  141,  146,  120,  146,  120,  146,
  806.       121,  146,  120,  121,  146,  120,  146,  120,  146,  120,
  807.       146,  120,  146,   62,  146,   59,  146,   58,  146,   58,
  808.       146,   62,  146,   62,  146,   68,  146,   66,   68,  146,
  809.        69,  146,   68,   69,  146,   68,  146,   68,  146,   65,
  810.  
  811.        68,  146,   65,   66,   68,  146,   65,   68,   69,  146,
  812.        65,   68,  146,   64,   65,   68,  146,   65,   68,  146,
  813.        42,  146,   43,  146,   42,   43,  146,   42,  146,   42,
  814.       146,   42,  146,   42,  146,   47,  146,   48,  146,   47,
  815.        48,  146,   47,  146,   47,  146,   47,  146,   47,  146,
  816.        27,  146,   25,   27,  146,   26,  146,   26,   27,  146,
  817.        24,   27,  146,   29,  146,   30,  146,   29,   30,  146,
  818.        28,   29,  146,   33,  146,   32,  146,   32,   33,  146,
  819.        33,  146,   11,   22,   22,   20,    1,   11,   21,   22,
  820.        21,   22,    2,    2,   18,   12,   18,   16,   18,   18,
  821.  
  822.         5,    6,    4,   19,   20,   84,16469, 8277, 8277, 8277,
  823.        93,   81,  143,  143,  143,   80,   79,   80,   75,   84,
  824.     16469,   73, 8277,   86,   73, 8277,   86,   73, 8277,   86,
  825.        93,   88,   75,   71,   71,   70,   70,   71,   71,  145,
  826.       145,  145,  145,  145,   52,   53,   52,   52,   52,   52,
  827.        55,   54,   56,   96,   97,  114,  110,  102,  144,  144,
  828.       144,  103,  104,  107,  124,  130,  128,  127,  125,  125,
  829.       125,   57,   57,   57,   57,  116,   36,   38,   34,  133,
  830.       135,  132,  137,  139,  138,  120,  120,  120,  121,  117,
  831.       120,  120,  120,  120,   62,   59,   58,   62,   62,   66,
  832.  
  833.        69,   67,   67,   67,   66,   64,   42,   43,   42,   42,
  834.        42,   42,   47,   48,   47,   47,   47,   47,   25,   26,
  835.        24,   30,   28,   32,   31,   31,   17,   17,    2,    2,
  836.        18,   12,   12,   18,   16,    5,    6,    9,    9,    3,
  837.         3,   82,   83,   83,   89,  143,  143,   80,   80,   90,
  838.        88,   52,   52,   52,   49,   49,  144,  144,  126,  126,
  839.       125,  125,   35,   35,  117,  120,  117,  120,  120,   62,
  840.        62,   63,   63,   67,   67,   42,   42,   42,   39,   39,
  841.        47,   47,   47,   44,   44,   15,   15,    5,   15,   17,
  842.        15,   17,    6,    9,    9,    3,    3,   83,   83,  143,
  843.  
  844.        52,   52,   49,   49,  144,  126,  126,  125,  125,   35,
  845.        35,  120,  120,   62,   62,   67,   42,   42,   39,   39,
  846.        47,   47,   44,   44,   15,   15,   15,   15,   17,   13,
  847.        52,   52,  125,  125,  120,  120,   62,   62,   42,   42,
  848.        47,   47,    7,   50,   52,   51,   52,  118,  125,  119,
  849.       125,  118,  120,  119,  120,   60,   62,   61,   62,   40,
  850.        42,   41,   42,   45,   47,   46,   47,   14,   87,    8,
  851.        10,   10,   74,   74,   10,   10,   74,   74
  852.     } ;
  853.  
  854. static const short int yy_accept[531] =
  855.     {   0,
  856.         1,    1,    1,    2,    3,    3,    3,    4,    5,    5,
  857.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  858.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  859.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  860.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  861.         5,    5,    5,    5,    5,    6,    8,   11,   13,   16,
  862.        18,   21,   25,   28,   32,   34,   36,   38,   42,   44,
  863.        48,   51,   55,   58,   60,   63,   66,   68,   70,   72,
  864.        77,   82,   88,   90,   93,   94,   96,   98,  100,  102,
  865.       104,  106,  108,  111,  113,  115,  117,  119,  121,  123,
  866.  
  867.       125,  127,  129,  130,  133,  136,  139,  141,  143,  145,
  868.       148,  151,  154,  157,  159,  161,  163,  165,  167,  169,
  869.       172,  174,  176,  178,  180,  182,  184,  187,  189,  192,
  870.       195,  197,  199,  202,  205,  208,  211,  214,  215,  217,
  871.       219,  221,  223,  225,  227,  229,  231,  233,  236,  238,
  872.       241,  244,  247,  249,  252,  255,  257,  259,  261,  263,
  873.       266,  268,  270,  272,  274,  276,  278,  280,  282,  284,
  874.       286,  288,  291,  293,  296,  298,  300,  303,  307,  311,
  875.       314,  318,  321,  323,  325,  328,  330,  332,  334,  336,
  876.       338,  340,  343,  345,  347,  349,  351,  353,  356,  358,
  877.  
  878.       361,  364,  366,  368,  371,  374,  376,  378,  381,  383,
  879.       384,  385,  386,  386,  387,  389,  391,  393,  393,  394,
  880.       395,  396,  398,  398,  399,  400,  401,  401,  402,  402,
  881.       402,  403,  403,  404,  404,  406,  408,  409,  410,  410,
  882.       410,  412,  413,  413,  413,  413,  414,  415,  416,  417,
  883.       418,  419,  422,  425,  428,  432,  433,  433,  434,  434,
  884.       435,  436,  437,  438,  440,  441,  442,  443,  445,  446,
  885.       447,  448,  449,  450,  451,  452,  453,  454,  455,  456,
  886.       457,  458,  459,  460,  461,  462,  463,  464,  465,  466,
  887.       467,  467,  468,  468,  469,  469,  470,  471,  472,  472,
  888.  
  889.       473,  474,  476,  477,  478,  479,  480,  481,  482,  483,
  890.       484,  485,  486,  487,  488,  489,  490,  492,  493,  494,
  891.       495,  496,  497,  498,  499,  500,  501,  502,  502,  503,
  892.       504,  505,  506,  507,  508,  509,  510,  511,  512,  513,
  893.       514,  515,  516,  517,  518,  519,  520,  521,  522,  523,
  894.       524,  525,  526,  527,  527,  528,  529,  531,  532,  533,
  895.       535,  535,  536,  536,  536,  536,  537,  537,  537,  537,
  896.       538,  538,  539,  540,  540,  541,  542,  543,  543,  544,
  897.       545,  545,  546,  546,  546,  547,  548,  549,  550,  551,
  898.       552,  552,  553,  554,  555,  556,  557,  557,  558,  559,
  899.  
  900.       559,  560,  561,  562,  563,  563,  564,  565,  567,  568,
  901.       569,  570,  571,  572,  572,  573,  574,  575,  576,  577,
  902.       578,  579,  580,  581,  581,  582,  583,  584,  585,  586,
  903.       586,  586,  586,  587,  588,  588,  588,  588,  589,  589,
  904.       591,  593,  593,  593,  594,  596,  598,  600,  600,  600,
  905.       600,  601,  601,  602,  603,  605,  606,  608,  609,  610,
  906.       612,  613,  614,  615,  616,  617,  618,  619,  621,  622,
  907.       623,  625,  627,  627,  627,  627,  630,  630,  631,  631,
  908.       631,  631,  631,  632,  633,  634,  635,  636,  637,  638,
  909.       639,  640,  641,  642,  643,  643,  643,  644,  644,  644,
  910.  
  911.       644,  646,  648,  650,  652,  654,  656,  658,  660,  662,
  912.       664,  666,  668,  668,  668,  669,  670,  670,  671,  671,
  913.       671,  671,  672,  673,  673,  674,  675,  677,  679,  679
  914.     } ;
  915.  
  916. static const YY_CHAR yy_ec[256] =
  917.     {   0,
  918.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  919.         1,    4,    5,    1,    1,    1,    1,    1,    1,    1,
  920.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  921.         1,    2,    1,    6,    7,    8,    9,    1,   10,   11,
  922.        11,   12,   11,   13,   14,   11,   15,   16,   16,   16,
  923.        16,   16,   16,   16,   16,   16,   16,    1,    1,   17,
  924.         1,   18,   11,    1,   24,   25,   26,   27,   28,   29,
  925.        23,   30,   31,   32,   33,   23,   34,   35,   36,   33,
  926.        23,   37,   38,   39,   40,   23,   23,   41,   42,   23,
  927.        19,   20,   21,   22,   23,    1,   24,   25,   26,   27,
  928.  
  929.        28,   29,   23,   30,   31,   32,   33,   23,   34,   35,
  930.        36,   33,   23,   37,   38,   39,   40,   23,   23,   41,
  931.        42,   23,   43,   44,   45,    1,    1,    1,    1,    1,
  932.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  933.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  934.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  935.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  936.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  937.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  938.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  939.  
  940.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  941.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  942.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  943.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  944.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  945.         1,    1,    1,    1,    1
  946.     } ;
  947.  
  948. static const YY_CHAR yy_meta[46] =
  949.     {   0,
  950.         1,    2,    3,    2,    4,    5,    1,    1,    1,    6,
  951.         1,    7,    1,    8,    6,    9,    1,    1,    1,   10,
  952.        11,    1,   12,   13,   13,   13,   13,   13,   13,   12,
  953.        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
  954.        12,   12,    6,    1,   14
  955.     } ;
  956.  
  957. static const short int yy_base[616] =
  958.     {   0,
  959.         0,   45,   89,  132,   93,  100,  107,  108,  176, 2227,
  960.       112,  116,  221,    0, 2213, 2212,  126,  264,  150,  154,
  961.       147,  265,  268,  278,  309,    0,  119,  120,  123,  352,
  962.       160,  161,  281,  291,  353,  357,  397,    0,  441,  445,
  963.         0,    0,  362,  486,  506, 2224,  551, 2223,  596,    0,
  964.       641,    0,  271,  365, 2231, 2237,  302, 2237, 2227, 2190,
  965.         0,  376, 2237, 2225,  143,  678,   87,    0, 2237,  449,
  966.      2237, 2224, 2237,  381, 2237, 2209, 2205,  254,  721,  457,
  967.      2237, 2221,  454, 2237,  297,    0,  385,  369, 2237,  388,
  968.         0, 2237, 2220,    0, 2194, 2179, 2175,    0,  390, 2237,
  969.  
  970.      2216, 2237, 2237, 2237, 2196,    0, 2237, 2237, 2237, 2214,
  971.      2237, 2200, 2237, 2237, 2237, 2212, 2237,  256, 2237, 2237,
  972.       439, 2200, 2237,    0,  440, 2237,    0, 2237, 2210, 2237,
  973.       447,  115,    0, 2184, 2169, 2237, 2237,  465, 2237,  466,
  974.      2237, 2207, 2237,    0, 2237, 2206, 2193,    0, 2237, 2137,
  975.      2097,    0, 2237, 2097, 2237,    0,    0,  470, 2237, 2096,
  976.      2021,    0, 2037, 2018,    0,  471, 2237, 2056, 2012, 1997,
  977.      2237,  490, 2237, 2031, 1994,  679, 2237,  687, 2025, 1988,
  978.      1978,  683,    0, 2237, 1990,    0, 1951, 1923, 1908,    0,
  979.      2237, 1949,    0, 1868, 1849, 1845, 2237,  494, 2237, 1882,
  980.  
  981.         0, 2237, 2237, 1881,    0, 2237, 2237, 1876,  500,  765,
  982.      2237, 1875,  769,    0,  773, 2237, 1871,  685, 2237,  689,
  983.       694,  705,  708,  777,  778,  781,  784,    0,  787,  240,
  984.         0,  790, 2237,  791,    0,  795, 2237, 1870, 1822,  798,
  985.      2237, 2237, 1836,  355,  786, 2237, 1843,    0,    0, 2237,
  986.       839,  883, 2237, 1855, 2237,    0, 1826, 2237,  807,    0,
  987.       811, 2237,  814,    0,  815, 2237,  818, 2237,    0, 2237,
  988.         0, 1821, 1811,  927,    0,  820, 2237, 2237,    0, 2237,
  989.      1828, 2237, 2237, 1815,    0, 2237, 2237, 2237,    0, 2237,
  990.       466, 2237, 1825, 2237,  823,    0, 1785, 1782,  826, 2237,
  991.  
  992.       827, 2237, 2237,    0, 2237,  830,    0, 2237, 2237,    0,
  993.      2237, 2237,    0,  887, 1770, 2237,  972,    0, 1779, 1776,
  994.         0,  832, 2237, 1774, 1771,  840, 2237,  895, 2237, 1781,
  995.         0,  891, 1780,    0, 2237,    0, 1750, 1741, 1017,    0,
  996.      2237,    0, 1738, 1735, 1062,  899, 2237,    0, 2237,    0,
  997.      2237, 2237, 1765,  906, 2237, 1752, 2237,  900,    0,  910,
  998.       913,  917, 1712, 1697, 1686,    0,  920, 1667, 1678,    0,
  999.      1105, 2237, 1106, 1109, 2237, 1110, 2237, 1113, 2237, 1114,
  1000.      1662, 2237, 1104, 1110, 1681,    0,    0, 1139, 2237,    0,
  1001.      1672, 1667, 1653,    0, 2237, 1118, 1124, 1666,    0, 1139,
  1002.  
  1003.      2237, 1182, 1653, 1632, 1183, 2237, 1186,    0,    0, 1639,
  1004.      1618, 1625, 1612, 1190, 2237, 1644, 1617,    0, 1600, 1586,
  1005.         0, 2237, 1193, 1194, 1586, 1577,    0, 2237, 1197, 1198,
  1006.      1201, 1205, 2237, 1208, 1541, 1544, 1542,    0, 1212, 2237,
  1007.      1215, 1506, 1516,    0, 2237, 2237, 2237, 1508, 1112, 1205,
  1008.      2237, 1503, 1503, 1487, 2237, 2237, 2237, 1497, 1454, 2237,
  1009.      1464, 1211, 1201, 1182, 2237, 1186, 1168, 2237, 1164, 1085,
  1010.      2237, 2237,  940,  898, 1220, 2237,  892, 2237,  895,  375,
  1011.       444,  878,  866,  810,  798,  797,  772,  777,  748,  756,
  1012.       687,  476,  446,  449,  341,  324, 1221,  281,  283,  253,
  1013.  
  1014.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  1015.         0,    0, 1224,  102, 2237, 2237,   64, 1233, 1233, 1236,
  1016.      1237, 2237, 1240, 1241, 2237, 1244, 2237, 2237, 2237, 1249,
  1017.      1263, 1277, 1291, 1305, 1319, 1333, 1347, 1361, 1375, 1389,
  1018.      1403, 1417, 1431, 1445, 1459, 1473, 1480, 1493, 1507, 1513,
  1019.      1526, 1540, 1554, 1568, 1582, 1596, 1610, 1617, 1630, 1637,
  1020.      1650, 1664, 1678, 1692, 1703, 1710, 1723, 1737, 1751, 1765,
  1021.      1779, 1793, 1800, 1813, 1827, 1841, 1848, 1861, 1868, 1874,
  1022.      1880, 1893,  487,  688, 1907, 1921, 1935,  149, 1949, 1962,
  1023.      1976, 1983,  684, 1996, 2010,  881, 2017, 2023, 2029, 2042,
  1024.  
  1025.      2049, 2055, 2068, 2082, 1614, 2096, 2109, 2123, 1731, 2137,
  1026.      1745, 2151, 2165, 2179, 2193
  1027.     } ;
  1028.  
  1029. static const short int yy_def[616] =
  1030.     {   0,
  1031.       529,  529,  530,  530,  531,  531,  532,  532,  529,    9,
  1032.       533,  533,  529,   13,  534,  534,  535,  535,  536,  536,
  1033.       537,  537,  538,  538,  529,   25,  539,  539,  534,  534,
  1034.       540,  540,  541,  541,  542,  542,  529,   37,  543,  543,
  1035.        37,   37,  544,  545,  529,   45,  529,   47,  529,   49,
  1036.       529,   51,  546,  546,  529,  529,  529,  529,  529,  529,
  1037.       547,  529,  529,  529,  548,  549,  529,  550,  529,  529,
  1038.       529,  529,  529,  529,  529,  529,  551,  552,  529,  529,
  1039.       529,  529,  529,  529,  553,  554,  555,  556,  529,  556,
  1040.       557,  529,  529,  558,  558,  558,  557,  559,  529,  529,
  1041.  
  1042.       529,  529,  529,  529,  529,  560,  529,  529,  529,  529,
  1043.       529,  529,  529,  529,  529,  529,  529,  552,  529,  529,
  1044.       561,  562,  529,  563,  552,  529,  564,  529,  529,  529,
  1045.       565,  529,  566,  566,  566,  529,  529,  567,  529,  567,
  1046.       529,  529,  529,  568,  529,  529,  529,  569,  529,  529,
  1047.       529,  570,  529,  529,  529,  571,  572,  572,  529,  529,
  1048.       572,  573,  573,  573,  574,  529,  529,  529,  574,  574,
  1049.       529,  529,  529,  529,  529,  575,  529,  529,  529,  529,
  1050.       529,  575,  576,  529,  529,  577,  577,  577,  576,  578,
  1051.       529,  529,  579,  579,  579,  578,  529,  529,  529,  529,
  1052.  
  1053.       580,  529,  529,  529,  581,  529,  529,  529,  529,  529,
  1054.       529,  529,  529,  547,  529,  529,  529,  548,  529,  548,
  1055.       529,  582,  529,  529,  529,  529,  529,  583,  529,  529,
  1056.       584,  585,  529,  586,  550,  529,  529,  529,  529,  587,
  1057.       529,  529,  529,  551,  551,  529,  529,  588,  589,  529,
  1058.       529,  529,  529,  529,  529,  590,  529,  529,  553,  554,
  1059.       555,  529,  553,  554,  556,  529,  556,  529,  557,  529,
  1060.       558,  558,  558,  529,  591,  529,  529,  529,  592,  529,
  1061.       529,  529,  529,  529,  593,  529,  529,  529,  564,  529,
  1062.       565,  529,  565,  529,  594,  566,  566,  566,  567,  529,
  1063.  
  1064.       567,  529,  529,  568,  529,  595,  569,  529,  529,  570,
  1065.       529,  529,  572,  572,  572,  529,  529,  573,  573,  573,
  1066.       574,  529,  529,  574,  574,  529,  529,  529,  529,  529,
  1067.       596,  529,  529,  576,  529,  577,  577,  577,  529,  578,
  1068.       529,  597,  597,  597,  529,  529,  529,  598,  529,  599,
  1069.       529,  529,  529,  529,  529,  529,  529,  529,  582,  582,
  1070.       600,  529,  529,  529,  529,  601,  600,  529,  529,  602,
  1071.       603,  529,  603,  604,  529,  604,  529,  587,  529,  587,
  1072.       529,  529,  551,  551,  529,  605,  606,  529,  529,  607,
  1073.       529,  558,  558,  274,  529,  608,  608,  529,  609,  594,
  1074.  
  1075.       529,  594,  566,  566,  595,  529,  595,  317,  610,  573,
  1076.       573,  574,  574,  529,  529,  529,  529,  611,  577,  577,
  1077.       339,  529,  612,  612,  597,  597,  345,  529,  613,  613,
  1078.       600,  600,  529,  600,  529,  529,  529,  601,  600,  529,
  1079.       600,  529,  529,  602,  529,  529,  529,  529,  551,  384,
  1080.       529,  529,  558,  558,  529,  529,  529,  566,  566,  529,
  1081.       573,  573,  574,  574,  529,  577,  577,  529,  597,  597,
  1082.       529,  529,  529,  529,  529,  529,  529,  529,  529,  551,
  1083.       551,  529,  558,  558,  566,  566,  573,  573,  574,  574,
  1084.       577,  577,  597,  597,  529,  529,  529,  529,  529,  529,
  1085.  
  1086.       558,  558,  566,  566,  573,  573,  574,  574,  577,  577,
  1087.       597,  597,  529,  529,  529,  529,  529,  529,  614,  615,
  1088.       614,  529,  614,  615,  529,  615,  529,  529,    0,  529,
  1089.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1090.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1091.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1092.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1093.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1094.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1095.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1096.  
  1097.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1098.       529,  529,  529,  529,  529
  1099.     } ;
  1100.  
  1101. static const short int yy_nxt[2283] =
  1102.     {   0,
  1103.        56,   57,   58,   57,   59,   56,   56,   56,   60,   56,
  1104.        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
  1105.        56,   56,   61,   61,   61,   61,   61,   61,   61,   61,
  1106.        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
  1107.        61,   61,   56,   56,   56,   56,   62,   63,   62,   64,
  1108.        56,   65,   56,   66,   56,   56,   56,   56,   56,   67,
  1109.        56,   56,   56,   56,   56,   56,   56,   68,   68,   68,
  1110.        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
  1111.        68,   68,   68,   68,   68,   68,   68,   56,   56,   56,
  1112.        70,   71,   70,   72,   73,   86,   74,   87,  233,   75,
  1113.  
  1114.        75,  234,   86,   75,   87,   76,  520,   77,   78,   89,
  1115.        89,   90,   90,   99,  100,   99,  101,   99,  100,   99,
  1116.       101,  139,  139,  140,  140,  141,  294,  142,  109,  295,
  1117.       110,   79,   75,   80,   81,   80,   82,   73,  111,   74,
  1118.        83,  112,   75,   75,  519,  219,   75,  220,   76,  103,
  1119.        77,   78,  115,   84,  116,  117,  115,  386,  116,  117,
  1120.       120,  386,  145,  145,  146,  146,  121,  143,  122,  118,
  1121.       113,  147,  147,  118,   79,   75,   91,   91,   92,   91,
  1122.        93,   91,   91,   91,   91,   91,   91,   91,   91,   91,
  1123.        91,   91,   91,   91,   91,   91,   91,   91,   94,   94,
  1124.  
  1125.        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
  1126.        94,   94,   95,   94,   94,   94,   94,   96,   91,   91,
  1127.        91,  102,  102,  103,  102,  102,  102,  102,  102,  102,
  1128.       102,  102,  102,  104,  102,  102,  102,  102,  105,  102,
  1129.       102,  102,  102,  106,  106,  106,  106,  106,  106,  106,
  1130.       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
  1131.       106,  106,  106,  102,  102,  102,  109,  103,  110,  247,
  1132.       103,  247,  103,  207,  368,  208,  111,  369,  120,  112,
  1133.       103,  124,  103,  149,  121,  150,  122,  125,  126,  517,
  1134.       209,  124,  151,  149,  248,  150,  248,  125,  126,  260,
  1135.  
  1136.       516,  261,  151,  210,  211,  210,  212,  515,  113,  127,
  1137.       127,  128,  127,  129,  130,  127,  127,  127,  131,  127,
  1138.       127,  127,  127,  132,  127,  127,  127,  127,  127,  127,
  1139.       127,  133,  133,  133,  133,  133,  133,  133,  133,  133,
  1140.       133,  133,  133,  133,  133,  134,  133,  133,  133,  133,
  1141.       135,  136,  127,  137,  141,  153,  142,  154,  155,  153,
  1142.       514,  154,  155,  172,  173,  172,  174,  207,  513,  208,
  1143.       175,  266,  156,  267,  245,  382,  156,  215,  216,  215,
  1144.       217,  176,  242,  242,  209,  242,  259,  264,  259,  261,
  1145.       268,  276,  267,  276,  245,  382,  143,  157,  158,  159,
  1146.  
  1147.       158,  160,  157,  157,  157,  161,  157,  157,  157,  157,
  1148.       157,  157,  157,  157,  157,  157,  157,  157,  157,  162,
  1149.       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
  1150.       162,  162,  162,  163,  162,  162,  162,  162,  164,  157,
  1151.       157,  157,  166,  167,  166,  168,  166,  167,  166,  168,
  1152.       236,  237,  236,  238,  284,  247,  292,  239,  252,  253,
  1153.       252,  254,  256,  245,  382,  239,  293,  300,  302,  301,
  1154.       301,  314,  322,  314,  322,  292,  512,  169,  315,  285,
  1155.       248,  169,  170,  257,  511,  293,  170,  178,  173,  178,
  1156.       179,  326,  240,  326,  180,  346,  258,  346,  366,  366,
  1157.  
  1158.       240,  181,  352,  510,  353,  182,  183,  183,  184,  183,
  1159.       185,  183,  183,  183,  183,  183,  183,  183,  183,  183,
  1160.       183,  183,  183,  183,  183,  183,  183,  183,  186,  186,
  1161.       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
  1162.       186,  186,  187,  186,  186,  186,  186,  188,  183,  183,
  1163.       183,  190,  190,  191,  190,  192,  190,  190,  190,  190,
  1164.       190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
  1165.       190,  190,  190,  193,  193,  193,  193,  193,  193,  193,
  1166.       193,  193,  193,  193,  193,  193,  193,  194,  193,  193,
  1167.       193,  193,  195,  190,  190,  190,  197,  198,  199,  198,
  1168.  
  1169.       200,  197,  197,  197,  197,  197,  197,  197,  197,  197,
  1170.       197,  197,  197,  197,  197,  197,  197,  197,  201,  201,
  1171.       201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
  1172.       201,  201,  201,  201,  201,  201,  201,  201,  197,  197,
  1173.       197,  202,  202,  203,  202,  204,  202,  202,  202,  202,
  1174.       202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
  1175.       202,  202,  202,  205,  205,  205,  205,  205,  205,  205,
  1176.       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
  1177.       205,  205,  205,  202,  202,  202,  222,  219,  332,  220,
  1178.       332,  357,  399,  220,  330,  358,  399,  358,  330,  370,
  1179.  
  1180.       370,  223,  333,  224,  225,  223,  360,  226,  360,  361,
  1181.       223,  361,  227,  223,  224,  228,  229,  230,  231,  331,
  1182.       232,  249,  249,  331,  249,  509,  249,  249,  249,  249,
  1183.       249,  249,  249,  249,  249,  249,  250,  249,  249,  249,
  1184.       249,  249,  249,  251,  251,  251,  251,  251,  251,  251,
  1185.       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
  1186.       251,  251,  251,  249,  249,  249,  210,  211,  210,  212,
  1187.       354,  355,  354,  356,  215,  216,  215,  217,  362,  358,
  1188.       362,  358,  358,  508,  358,  361,  507,  361,  367,  355,
  1189.       367,  356,  372,  375,  373,  376,  236,  237,  236,  238,
  1190.  
  1191.       379,  383,  380,  239,  506,  363,  244,  365,  364,  260,
  1192.       505,  261,  259,  264,  259,  261,  260,  266,  261,  267,
  1193.       268,  276,  267,  276,  504,  401,  384,  402,  300,  302,
  1194.       301,  301,  406,  322,  407,  322,  503,  502,  240,  387,
  1195.       387,  326,  387,  326,  387,  387,  387,  387,  387,  387,
  1196.       387,  387,  388,  387,  388,  387,  387,  387,  387,  387,
  1197.       387,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1198.       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1199.       388,  387,  387,  389,  252,  253,  252,  254,  314,  418,
  1200.       314,  239,  332,  418,  332,  315,  414,  415,  414,  416,
  1201.  
  1202.       346,  358,  346,  358,  501,  500,  333,  354,  355,  354,
  1203.       356,  360,  499,  360,  432,  433,  432,  434,  362,  498,
  1204.       362,  439,  440,  439,  441,  496,  240,  394,  394,  395,
  1205.       394,  396,  394,  394,  394,  394,  394,  394,  394,  394,
  1206.       394,  394,  394,  394,  394,  394,  394,  394,  394,  397,
  1207.       397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
  1208.       397,  397,  397,  397,  397,  397,  397,  397,  397,  394,
  1209.       394,  394,  408,  408,  495,  408,  409,  408,  408,  408,
  1210.       408,  408,  408,  408,  408,  408,  408,  408,  408,  408,
  1211.       408,  408,  408,  408,  409,  409,  409,  409,  409,  409,
  1212.  
  1213.       409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
  1214.       409,  409,  409,  409,  408,  408,  408,  421,  421,  422,
  1215.       421,  423,  421,  421,  421,  421,  421,  421,  421,  421,
  1216.       421,  421,  421,  421,  421,  421,  421,  421,  421,  424,
  1217.       424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
  1218.       424,  424,  424,  424,  424,  424,  424,  424,  424,  421,
  1219.       421,  421,  427,  427,  428,  427,  429,  427,  427,  427,
  1220.       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
  1221.       427,  427,  427,  427,  430,  430,  430,  430,  430,  430,
  1222.       430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
  1223.  
  1224.       430,  430,  430,  430,  427,  427,  427,  372,  445,  373,
  1225.       373,  375,  446,  376,  376,  379,  447,  380,  380,  449,
  1226.       455,  494,  396,  245,  382,  450,  395,  480,  396,  245,
  1227.       382,  245,  382,  450,  450,  450,  450,  450,  450,  387,
  1228.       387,  401,  387,  402,  387,  387,  387,  387,  387,  387,
  1229.       387,  387,  388,  387,  388,  387,  387,  387,  387,  387,
  1230.       387,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1231.       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1232.       388,  387,  387,  389,  457,  406,  402,  407,  460,  493,
  1233.       407,  414,  415,  414,  416,  468,  422,  423,  423,  471,
  1234.  
  1235.       428,  429,  429,  433,  492,  434,  432,  433,  432,  434,
  1236.       472,  491,  434,  439,  440,  439,  441,  476,  490,  434,
  1237.       481,  497,  497,  497,  497,  518,  489,  518,  481,  481,
  1238.       481,  481,  481,  481,  518,  522,  518,  523,  525,  522,
  1239.       526,  523,  527,  525,  523,  526,  528,  488,  526,   69,
  1240.        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
  1241.        69,   69,   69,   85,   85,   85,   85,   85,   85,   85,
  1242.        85,   85,   85,   85,   85,   85,   85,   88,   88,   88,
  1243.        88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
  1244.        88,   98,   98,   98,   98,   98,   98,   98,   98,   98,
  1245.  
  1246.        98,   98,   98,   98,   98,  103,  103,  103,  103,  103,
  1247.       103,  103,  103,  103,  103,  103,  103,  103,  103,  108,
  1248.       108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
  1249.       108,  108,  108,  114,  114,  114,  114,  114,  114,  114,
  1250.       114,  114,  114,  114,  114,  114,  114,  119,  119,  119,
  1251.       119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
  1252.       119,  123,  123,  123,  123,  123,  123,  123,  123,  123,
  1253.       123,  123,  123,  123,  123,  138,  138,  138,  138,  138,
  1254.       138,  138,  138,  138,  138,  138,  138,  138,  138,  144,
  1255.       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
  1256.  
  1257.       144,  144,  144,  148,  148,  148,  148,  148,  148,  148,
  1258.       148,  148,  148,  148,  148,  148,  148,  152,  152,  152,
  1259.       152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
  1260.       152,  165,  165,  165,  165,  165,  165,  165,  165,  165,
  1261.       165,  165,  165,  165,  165,  171,  171,  171,  171,  171,
  1262.       171,  171,  171,  171,  171,  171,  171,  171,  171,  177,
  1263.       177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
  1264.       177,  177,  177,  206,  206,  206,  206,  206,  206,  206,
  1265.       206,  206,  206,  206,  206,  206,  206,  214,  214,  487,
  1266.       486,  214,  214,  218,  218,  218,  218,  218,  218,  218,
  1267.  
  1268.       218,  218,  218,  218,  218,  218,  218,  221,  221,  221,
  1269.       221,  221,  221,  221,  221,  221,  221,  221,  221,  221,
  1270.       235,  235,  485,  484,  235,  235,  244,  244,  483,  482,
  1271.       244,  244,  244,  244,  244,  244,  479,  244,  244,  244,
  1272.       246,  246,  478,  477,  246,  246,  246,  246,  246,  246,
  1273.       246,  246,  246,  246,  259,  259,  259,  259,  259,  259,
  1274.       259,  259,  259,  259,  259,  259,  259,  259,  262,  475,
  1275.       474,  473,  262,  262,  262,  262,  262,  262,  262,  262,
  1276.       262,  262,  263,  263,  263,  263,  263,  263,  263,  263,
  1277.       263,  263,  263,  263,  263,  263,  265,  265,  265,  265,
  1278.  
  1279.       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
  1280.       269,  269,  470,  469,  269,  269,  269,  269,  269,  269,
  1281.       269,  467,  451,  269,  271,  271,  451,  466,  271,  271,
  1282.       275,  275,  329,  275,  275,  275,  275,  275,  275,  275,
  1283.       275,  275,  275,  275,  279,  279,  415,  464,  279,  279,
  1284.       283,  283,  463,  462,  283,  283,  283,  283,  283,  283,
  1285.       283,  283,  283,  283,  286,  286,  461,  459,  286,  286,
  1286.       286,  286,  286,  286,  286,  286,  286,  286,  288,  288,
  1287.       458,  283,  288,  288,  288,  288,  288,  288,  454,  288,
  1288.       288,  288,  289,  289,  453,  452,  246,  448,  289,  289,
  1289.  
  1290.       289,  289,  289,  291,  291,  443,  442,  291,  291,  291,
  1291.       291,  291,  291,  291,  291,  291,  291,  296,  296,  437,
  1292.       436,  296,  296,  299,  299,  299,  299,  299,  299,  299,
  1293.       299,  299,  299,  299,  299,  299,  299,  304,  304,  456,
  1294.       435,  304,  304,  456,  304,  304,  304,  304,  304,  304,
  1295.       304,  307,  307,  465,  355,  307,  307,  465,  307,  307,
  1296.       307,  307,  307,  307,  307,  310,  310,  352,  426,  425,
  1297.       310,  310,  310,  310,  420,  310,  310,  310,  310,  312,
  1298.       312,  419,  312,  312,  312,  312,  312,  312,  312,  312,
  1299.       312,  312,  312,  313,  313,  333,  417,  313,  313,  313,
  1300.  
  1301.       313,  313,  313,  313,  413,  412,  313,  318,  318,  411,
  1302.       410,  318,  318,  321,  317,  404,  403,  321,  321,  321,
  1303.       321,  321,  321,  321,  321,  321,  321,  329,  329,  291,
  1304.       398,  329,  329,  329,  329,  329,  329,  329,  329,  329,
  1305.       329,  334,  334,  281,  393,  334,  334,  334,  334,  334,
  1306.       334,  334,  392,  391,  334,  336,  336,  253,  385,  336,
  1307.       336,  340,  340,  381,  377,  340,  340,  340,  340,  340,
  1308.       340,  340,  237,  216,  340,  342,  342,  211,  351,  342,
  1309.       342,  348,  348,  349,  347,  348,  348,  350,  350,  345,
  1310.       344,  350,  350,  359,  359,  343,  359,  359,  359,  359,
  1311.  
  1312.       359,  359,  359,  359,  359,  359,  359,  371,  371,  371,
  1313.       371,  371,  371,  371,  371,  371,  371,  371,  371,  371,
  1314.       371,  374,  374,  374,  374,  374,  374,  374,  374,  374,
  1315.       374,  374,  374,  374,  374,  378,  378,  378,  378,  378,
  1316.       378,  378,  378,  378,  378,  378,  378,  378,  378,  387,
  1317.       387,  341,  339,  387,  387,  387,  387,  387,  387,  387,
  1318.       387,  387,  390,  390,  338,  390,  390,  390,  390,  390,
  1319.       390,  390,  390,  390,  390,  390,  275,  275,  337,  275,
  1320.       275,  275,  275,  275,  275,  275,  275,  275,  275,  275,
  1321.       279,  279,  335,  333,  279,  279,  400,  400,  400,  400,
  1322.  
  1323.       400,  400,  400,  400,  400,  400,  400,  400,  400,  400,
  1324.       405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
  1325.       405,  405,  405,  405,  342,  342,  328,  327,  342,  342,
  1326.       348,  348,  328,  327,  348,  348,  350,  350,  325,  324,
  1327.       350,  350,  431,  431,  431,  431,  431,  431,  431,  431,
  1328.       431,  431,  431,  431,  431,  431,  438,  438,  323,  320,
  1329.       438,  438,  444,  444,  319,  317,  444,  444,  371,  371,
  1330.       371,  371,  371,  371,  371,  371,  371,  371,  371,  371,
  1331.       371,  371,  374,  374,  374,  374,  374,  374,  374,  374,
  1332.       374,  374,  374,  374,  374,  374,  387,  387,  316,  311,
  1333.  
  1334.       387,  387,  387,  387,  387,  387,  387,  387,  387,  390,
  1335.       390,  309,  390,  390,  390,  390,  390,  390,  390,  390,
  1336.       390,  390,  390,  397,  397,  397,  397,  397,  397,  397,
  1337.       397,  397,  397,  397,  397,  397,  397,  409,  409,  308,
  1338.       409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
  1339.       409,  424,  424,  424,  424,  424,  424,  424,  424,  424,
  1340.       424,  424,  424,  424,  424,  430,  430,  430,  430,  430,
  1341.       430,  430,  430,  430,  430,  430,  430,  430,  430,  521,
  1342.       521,  521,  521,  521,  521,  521,  521,  521,  521,  521,
  1343.       521,  521,  521,  524,  524,  524,  524,  524,  524,  524,
  1344.  
  1345.       524,  524,  524,  524,  524,  524,  524,  306,  305,  303,
  1346.       298,  297,  290,  287,  282,  281,  280,  278,  277,  274,
  1347.       273,  272,  270,  255,  245,  243,  241,  216,  213,  211,
  1348.       529,  196,  189,  107,  107,   97,   55,  529,  529,  529,
  1349.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1350.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1351.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1352.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1353.       529,  529
  1354.     } ;
  1355.  
  1356. static const short int yy_chk[2283] =
  1357.     {   0,
  1358.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1359.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1360.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1361.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1362.         1,    1,    1,    1,    1,    2,    2,    2,    2,    2,
  1363.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  1364.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  1365.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  1366.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  1367.         3,    3,    3,    3,    3,    5,    3,    5,   67,    3,
  1368.  
  1369.         3,   67,    6,    3,    6,    3,  517,    3,    3,    7,
  1370.         8,    7,    8,   11,   11,   11,   11,   12,   12,   12,
  1371.        12,   27,   28,   27,   28,   29,  132,   29,   17,  132,
  1372.        17,    3,    3,    4,    4,    4,    4,    4,   17,    4,
  1373.         4,   17,    4,    4,  514,   65,    4,   65,    4,   21,
  1374.         4,    4,   19,    4,   19,   19,   20,  588,   20,   20,
  1375.        21,  588,   31,   32,   31,   32,   21,   29,   21,   19,
  1376.        17,   31,   32,   20,    4,    4,    9,    9,    9,    9,
  1377.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  1378.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  1379.  
  1380.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  1381.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  1382.         9,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  1383.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  1384.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  1385.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  1386.        13,   13,   13,   13,   13,   13,   18,   22,   18,   78,
  1387.        23,  118,   23,   53,  230,   53,   18,  230,   22,   18,
  1388.        24,   23,   24,   33,   22,   33,   22,   23,   23,  500,
  1389.        53,   24,   33,   34,   78,   34,  118,   24,   24,   85,
  1390.  
  1391.       499,   85,   34,   57,   57,   57,   57,  498,   18,   25,
  1392.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  1393.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  1394.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  1395.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  1396.        25,   25,   25,   25,   30,   35,   30,   35,   35,   36,
  1397.       496,   36,   36,   43,   43,   43,   43,   54,  495,   54,
  1398.        43,   88,   35,   88,  244,  244,   36,   62,   62,   62,
  1399.        62,   43,   74,   74,   54,   74,   87,   87,   87,   87,
  1400.        90,   99,   90,   99,  480,  480,   30,   37,   37,   37,
  1401.  
  1402.        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  1403.        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  1404.        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  1405.        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
  1406.        37,   37,   39,   39,   39,   39,   40,   40,   40,   40,
  1407.        70,   70,   70,   70,  121,  125,  131,   70,   80,   80,
  1408.        80,   80,   83,  481,  481,   80,  131,  138,  140,  138,
  1409.       140,  158,  166,  158,  166,  291,  494,   39,  158,  121,
  1410.       125,   40,   39,   83,  493,  291,   40,   44,   44,   44,
  1411.        44,  172,   70,  172,   44,  198,   83,  198,  583,  583,
  1412.  
  1413.        80,   44,  209,  492,  209,   44,   45,   45,   45,   45,
  1414.        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1415.        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1416.        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1417.        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  1418.        45,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  1419.        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  1420.        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  1421.        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  1422.        47,   47,   47,   47,   47,   47,   49,   49,   49,   49,
  1423.  
  1424.        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  1425.        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  1426.        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  1427.        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
  1428.        49,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  1429.        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  1430.        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  1431.        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
  1432.        51,   51,   51,   51,   51,   51,   66,  218,  178,  218,
  1433.       178,  220,  593,  220,  176,  221,  593,  221,  182,  584,
  1434.  
  1435.       584,   66,  178,   66,   66,   66,  222,   66,  222,  223,
  1436.        66,  223,   66,   66,   66,   66,   66,   66,   66,  176,
  1437.        66,   79,   79,  182,   79,  491,   79,   79,   79,   79,
  1438.        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
  1439.        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
  1440.        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
  1441.        79,   79,   79,   79,   79,   79,  210,  210,  210,  210,
  1442.       213,  213,  213,  213,  215,  215,  215,  215,  224,  225,
  1443.       224,  225,  226,  490,  226,  227,  489,  227,  229,  229,
  1444.       229,  229,  232,  234,  232,  234,  236,  236,  236,  236,
  1445.  
  1446.       240,  245,  240,  236,  488,  225,  245,  227,  226,  259,
  1447.       487,  259,  261,  261,  261,  261,  263,  265,  263,  265,
  1448.       267,  276,  267,  276,  486,  295,  245,  295,  299,  301,
  1449.       299,  301,  306,  322,  306,  322,  485,  484,  236,  251,
  1450.       251,  326,  251,  326,  251,  251,  251,  251,  251,  251,
  1451.       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
  1452.       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
  1453.       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
  1454.       251,  251,  251,  251,  252,  252,  252,  252,  314,  596,
  1455.       314,  252,  332,  596,  332,  314,  328,  328,  328,  328,
  1456.  
  1457.       346,  358,  346,  358,  483,  482,  332,  354,  354,  354,
  1458.       354,  360,  479,  360,  361,  361,  361,  361,  362,  477,
  1459.       362,  367,  367,  367,  367,  474,  252,  274,  274,  274,
  1460.       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
  1461.       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
  1462.       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
  1463.       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
  1464.       274,  274,  317,  317,  473,  317,  317,  317,  317,  317,
  1465.       317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
  1466.       317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
  1467.  
  1468.       317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
  1469.       317,  317,  317,  317,  317,  317,  317,  339,  339,  339,
  1470.       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
  1471.       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
  1472.       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
  1473.       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
  1474.       339,  339,  345,  345,  345,  345,  345,  345,  345,  345,
  1475.       345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
  1476.       345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
  1477.       345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
  1478.  
  1479.       345,  345,  345,  345,  345,  345,  345,  371,  373,  371,
  1480.       373,  374,  376,  374,  376,  378,  380,  378,  380,  383,
  1481.       396,  470,  396,  383,  383,  384,  397,  449,  397,  384,
  1482.       384,  449,  449,  384,  384,  384,  384,  384,  384,  388,
  1483.       388,  400,  388,  400,  388,  388,  388,  388,  388,  388,
  1484.       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1485.       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1486.       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
  1487.       388,  388,  388,  388,  402,  405,  402,  405,  407,  469,
  1488.       407,  414,  414,  414,  414,  423,  424,  423,  424,  429,
  1489.  
  1490.       430,  429,  430,  431,  467,  431,  432,  432,  432,  432,
  1491.       434,  466,  434,  439,  439,  439,  439,  441,  464,  441,
  1492.       450,  475,  497,  475,  497,  513,  463,  513,  450,  450,
  1493.       450,  450,  450,  450,  518,  519,  518,  519,  520,  521,
  1494.       520,  521,  523,  524,  523,  524,  526,  462,  526,  530,
  1495.       530,  530,  530,  530,  530,  530,  530,  530,  530,  530,
  1496.       530,  530,  530,  531,  531,  531,  531,  531,  531,  531,
  1497.       531,  531,  531,  531,  531,  531,  531,  532,  532,  532,
  1498.       532,  532,  532,  532,  532,  532,  532,  532,  532,  532,
  1499.       532,  533,  533,  533,  533,  533,  533,  533,  533,  533,
  1500.  
  1501.       533,  533,  533,  533,  533,  534,  534,  534,  534,  534,
  1502.       534,  534,  534,  534,  534,  534,  534,  534,  534,  535,
  1503.       535,  535,  535,  535,  535,  535,  535,  535,  535,  535,
  1504.       535,  535,  535,  536,  536,  536,  536,  536,  536,  536,
  1505.       536,  536,  536,  536,  536,  536,  536,  537,  537,  537,
  1506.       537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
  1507.       537,  538,  538,  538,  538,  538,  538,  538,  538,  538,
  1508.       538,  538,  538,  538,  538,  539,  539,  539,  539,  539,
  1509.       539,  539,  539,  539,  539,  539,  539,  539,  539,  540,
  1510.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  1511.  
  1512.       540,  540,  540,  541,  541,  541,  541,  541,  541,  541,
  1513.       541,  541,  541,  541,  541,  541,  541,  542,  542,  542,
  1514.       542,  542,  542,  542,  542,  542,  542,  542,  542,  542,
  1515.       542,  543,  543,  543,  543,  543,  543,  543,  543,  543,
  1516.       543,  543,  543,  543,  543,  544,  544,  544,  544,  544,
  1517.       544,  544,  544,  544,  544,  544,  544,  544,  544,  545,
  1518.       545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
  1519.       545,  545,  545,  546,  546,  546,  546,  546,  546,  546,
  1520.       546,  546,  546,  546,  546,  546,  546,  547,  547,  461,
  1521.       459,  547,  547,  548,  548,  548,  548,  548,  548,  548,
  1522.  
  1523.       548,  548,  548,  548,  548,  548,  548,  549,  549,  549,
  1524.       549,  549,  549,  549,  549,  549,  549,  549,  549,  549,
  1525.       550,  550,  458,  454,  550,  550,  551,  551,  453,  452,
  1526.       551,  551,  551,  551,  551,  551,  448,  551,  551,  551,
  1527.       552,  552,  443,  442,  552,  552,  552,  552,  552,  552,
  1528.       552,  552,  552,  552,  553,  553,  553,  553,  553,  553,
  1529.       553,  553,  553,  553,  553,  553,  553,  553,  554,  437,
  1530.       436,  435,  554,  554,  554,  554,  554,  554,  554,  554,
  1531.       554,  554,  555,  555,  555,  555,  555,  555,  555,  555,
  1532.       555,  555,  555,  555,  555,  555,  556,  556,  556,  556,
  1533.  
  1534.       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
  1535.       557,  557,  426,  425,  557,  557,  557,  557,  557,  557,
  1536.       557,  420,  605,  557,  558,  558,  605,  419,  558,  558,
  1537.       559,  559,  417,  559,  559,  559,  559,  559,  559,  559,
  1538.       559,  559,  559,  559,  560,  560,  416,  413,  560,  560,
  1539.       561,  561,  412,  411,  561,  561,  561,  561,  561,  561,
  1540.       561,  561,  561,  561,  562,  562,  410,  404,  562,  562,
  1541.       562,  562,  562,  562,  562,  562,  562,  562,  563,  563,
  1542.       403,  398,  563,  563,  563,  563,  563,  563,  393,  563,
  1543.       563,  563,  564,  564,  392,  391,  385,  381,  564,  564,
  1544.  
  1545.       564,  564,  564,  565,  565,  369,  368,  565,  565,  565,
  1546.       565,  565,  565,  565,  565,  565,  565,  566,  566,  365,
  1547.       364,  566,  566,  567,  567,  567,  567,  567,  567,  567,
  1548.       567,  567,  567,  567,  567,  567,  567,  568,  568,  609,
  1549.       363,  568,  568,  609,  568,  568,  568,  568,  568,  568,
  1550.       568,  569,  569,  611,  356,  569,  569,  611,  569,  569,
  1551.       569,  569,  569,  569,  569,  570,  570,  353,  344,  343,
  1552.       570,  570,  570,  570,  338,  570,  570,  570,  570,  571,
  1553.       571,  337,  571,  571,  571,  571,  571,  571,  571,  571,
  1554.       571,  571,  571,  572,  572,  333,  330,  572,  572,  572,
  1555.  
  1556.       572,  572,  572,  572,  325,  324,  572,  573,  573,  320,
  1557.       319,  573,  573,  574,  315,  298,  297,  574,  574,  574,
  1558.       574,  574,  574,  574,  574,  574,  574,  575,  575,  293,
  1559.       284,  575,  575,  575,  575,  575,  575,  575,  575,  575,
  1560.       575,  576,  576,  281,  273,  576,  576,  576,  576,  576,
  1561.       576,  576,  272,  257,  576,  577,  577,  254,  247,  577,
  1562.       577,  578,  578,  243,  239,  578,  578,  578,  578,  578,
  1563.       578,  578,  238,  217,  578,  579,  579,  212,  208,  579,
  1564.       579,  580,  580,  204,  200,  580,  580,  581,  581,  196,
  1565.       195,  581,  581,  582,  582,  194,  582,  582,  582,  582,
  1566.  
  1567.       582,  582,  582,  582,  582,  582,  582,  585,  585,  585,
  1568.       585,  585,  585,  585,  585,  585,  585,  585,  585,  585,
  1569.       585,  586,  586,  586,  586,  586,  586,  586,  586,  586,
  1570.       586,  586,  586,  586,  586,  587,  587,  587,  587,  587,
  1571.       587,  587,  587,  587,  587,  587,  587,  587,  587,  589,
  1572.       589,  192,  189,  589,  589,  589,  589,  589,  589,  589,
  1573.       589,  589,  590,  590,  188,  590,  590,  590,  590,  590,
  1574.       590,  590,  590,  590,  590,  590,  591,  591,  187,  591,
  1575.       591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
  1576.       592,  592,  185,  181,  592,  592,  594,  594,  594,  594,
  1577.  
  1578.       594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  1579.       595,  595,  595,  595,  595,  595,  595,  595,  595,  595,
  1580.       595,  595,  595,  595,  597,  597,  180,  179,  597,  597,
  1581.       598,  598,  175,  174,  598,  598,  599,  599,  170,  169,
  1582.       599,  599,  600,  600,  600,  600,  600,  600,  600,  600,
  1583.       600,  600,  600,  600,  600,  600,  601,  601,  168,  164,
  1584.       601,  601,  602,  602,  163,  161,  602,  602,  603,  603,
  1585.       603,  603,  603,  603,  603,  603,  603,  603,  603,  603,
  1586.       603,  603,  604,  604,  604,  604,  604,  604,  604,  604,
  1587.       604,  604,  604,  604,  604,  604,  606,  606,  160,  154,
  1588.  
  1589.       606,  606,  606,  606,  606,  606,  606,  606,  606,  607,
  1590.       607,  151,  607,  607,  607,  607,  607,  607,  607,  607,
  1591.       607,  607,  607,  608,  608,  608,  608,  608,  608,  608,
  1592.       608,  608,  608,  608,  608,  608,  608,  610,  610,  150,
  1593.       610,  610,  610,  610,  610,  610,  610,  610,  610,  610,
  1594.       610,  612,  612,  612,  612,  612,  612,  612,  612,  612,
  1595.       612,  612,  612,  612,  612,  613,  613,  613,  613,  613,
  1596.       613,  613,  613,  613,  613,  613,  613,  613,  613,  614,
  1597.       614,  614,  614,  614,  614,  614,  614,  614,  614,  614,
  1598.       614,  614,  614,  615,  615,  615,  615,  615,  615,  615,
  1599.  
  1600.       615,  615,  615,  615,  615,  615,  615,  147,  146,  142,
  1601.       135,  134,  129,  122,  116,  112,  110,  105,  101,   97,
  1602.        96,   95,   93,   82,   77,   76,   72,   64,   60,   59,
  1603.        55,   48,   46,   16,   15,   10,  529,  529,  529,  529,
  1604.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1605.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1606.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1607.       529,  529,  529,  529,  529,  529,  529,  529,  529,  529,
  1608.       529,  529
  1609.     } ;
  1610.  
  1611. static yy_state_type yy_last_accepting_state;
  1612. static YY_CHAR *yy_last_accepting_cpos;
  1613.  
  1614. #if YY_lex_DEBUG != 0
  1615. static const short int yy_rule_linenum[146] =
  1616.     {   0,
  1617.        92,   93,   94,   95,   96,   97,   98,   99,  102,  108,
  1618.       114,  116,  131,  135,  142,  151,  153,  170,  172,  178,
  1619.       179,  180,  181,  186,  187,  188,  189,  191,  197,  198,
  1620.       200,  201,  202,  204,  205,  206,  207,  208,  210,  211,
  1621.       212,  213,  214,  220,  221,  222,  223,  224,  232,  233,
  1622.       234,  235,  236,  244,  246,  261,  268,  271,  272,  273,
  1623.       279,  285,  288,  289,  290,  291,  293,  298,  304,  307,
  1624.       314,  314,  318,  320,  324,  335,  336,  337,  338,  339,
  1625.       340,  342,  347,  349,  360,  367,  369,  371,  377,  406,
  1626.       425,  426,  427,  430,  431,  432,  433,  434,  436,  439,
  1627.  
  1628.       440,  442,  450,  451,  452,  453,  455,  456,  457,  460,
  1629.       465,  466,  468,  474,  482,  483,  486,  487,  491,  495,
  1630.       496,  512,  513,  514,  515,  516,  517,  518,  519,  520,
  1631.       529,  531,  532,  533,  534,  535,  537,  538,  539,  540,
  1632.       541,  541,  549,  554,  561
  1633.     } ;
  1634.  
  1635. #endif
  1636. static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
  1637. static YY_CHAR *yy_full_match;
  1638. static int yy_lp;
  1639. static int yy_looking_for_trail_begin = 0;
  1640. static int yy_full_lp;
  1641. static int *yy_full_state;
  1642. #define YY_TRAILING_MASK 0x2000
  1643. #define YY_TRAILING_HEAD_MASK 0x4000
  1644. #define REJECT \
  1645. { \
  1646. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
  1647. yy_cp = yy_full_match; /* restore poss. backed-over text */ \
  1648. yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \
  1649. yy_state_ptr = yy_full_state; /* restore orig. state */ \
  1650. yy_current_state = *yy_state_ptr; /* restore curr. state */ \
  1651. ++yy_lp; \
  1652. goto find_rule; \
  1653. }
  1654. #define yymore() yymore_used_but_not_detected
  1655. #define YY_MORE_ADJ 0
  1656. #line 369 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1657. #ifndef YY_USE_CLASS
  1658. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  1659. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  1660. #else
  1661. #define yy_get_previous_state() ((yy_state_type)(yy_get_previous_state_()))
  1662. #define yy_try_NUL_trans(c) ((yy_state_type)(yy_try_NUL_trans_(c)))
  1663. #endif
  1664.  
  1665. #ifndef YY_USE_CLASS
  1666. #ifdef YY_lex_LEX_DEFINED
  1667. YY_lex_LEX_RETURN YY_lex_LEX ( YY_lex_LEX_PARAM )
  1668. YY_lex_LEX_PARAM_DEF
  1669. #else
  1670. YY_DECL
  1671. #endif
  1672. #else
  1673. YY_lex_LEX_RETURN YY_lex_CLASS::YY_lex_LEX ( YY_lex_LEX_PARAM)
  1674.  
  1675. #endif
  1676.     {
  1677.     register yy_state_type yy_current_state;
  1678.     register YY_lex_CHAR *yy_cp, *yy_bp;
  1679.     register int yy_act;
  1680.  
  1681. /* % user's declarations go here */ 
  1682.  
  1683.     static int bracelevel, didadef;
  1684.     int i, indented_code, checking_used, new_xlation;
  1685.     int doing_codeblock = false;
  1686.     Char nmdef[MAXLINE], myesc();
  1687.  
  1688. /* % end of prolog */ 
  1689. #line 394 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1690.  
  1691.     if ( yy_init )
  1692.     {
  1693.      
  1694.      {
  1695.      YY_USER_INIT;
  1696.      }
  1697.     if ( ! yy_start )
  1698.         yy_start = 1;       /* first start state */
  1699.  
  1700.     if ( ! yy___in )
  1701.         yy___in = stdin;
  1702.  
  1703.     if ( ! yy___out )
  1704.         yy___out = stdout;
  1705.  
  1706.     if ( yy_current_buffer )
  1707.         YY_lex_INIT_BUFFER( yy_current_buffer, yy___in );
  1708.     else
  1709.         yy_current_buffer = YY_lex_CREATE_BUFFER( yy___in, YY_BUF_SIZE );
  1710.  
  1711.     YY_lex_LOAD_BUFFER_STATE();
  1712.     yy_init=0;
  1713.     }
  1714.  
  1715.     while ( 1 )         /* loops until end-of-file is reached */
  1716.     {
  1717. /* % yymore()-related code goes here */ 
  1718. #line 422 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1719.     yy_cp = yy_c_buf_p;
  1720.  
  1721.     /* support of yy___text */
  1722.     *yy_cp = yy_hold_char;
  1723.  
  1724.     /* yy_bp points to the position in yy_ch_buf of the start of the
  1725.      * current run.
  1726.      */
  1727.     yy_bp = yy_cp;
  1728.  
  1729. /* % code to set up and find next match goes here */ 
  1730.     yy_current_state = yy_start;
  1731.     if ( yy_bp[-1] == '\n' )
  1732.         ++yy_current_state;
  1733.     yy_state_ptr = yy_state_buf;
  1734.     *yy_state_ptr++ = yy_current_state;
  1735. yy_match:
  1736.     do
  1737.         {
  1738.         register YY_CHAR yy_c = yy_ec[*yy_cp];
  1739.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1740.         {
  1741.         yy_current_state = yy_def[yy_current_state];
  1742.         if ( yy_current_state >= 530 )
  1743.             yy_c = yy_meta[yy_c];
  1744.         }
  1745.         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1746.         *yy_state_ptr++ = yy_current_state;
  1747.         ++yy_cp;
  1748.         }
  1749.     while ( yy_current_state != 529 );
  1750. #line 433 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1751.  
  1752. yy_find_action:
  1753. /* % code to find the action number goes here */ 
  1754.     yy_current_state = *--yy_state_ptr;
  1755.     yy_lp = yy_accept[yy_current_state];
  1756. find_rule: /* we branch to this label when backtracking */
  1757.     for ( ; ; ) /* until we find what rule we matched */
  1758.         {
  1759.         if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
  1760.         {
  1761.         yy_act = yy_acclist[yy_lp];
  1762.         if ( yy_act & YY_TRAILING_HEAD_MASK ||
  1763.              yy_looking_for_trail_begin )
  1764.             {
  1765.             if ( yy_act == yy_looking_for_trail_begin )
  1766.             {
  1767.             yy_looking_for_trail_begin = 0;
  1768.             yy_act &= ~YY_TRAILING_HEAD_MASK;
  1769.             break;
  1770.             }
  1771.             }
  1772.         else if ( yy_act & YY_TRAILING_MASK )
  1773.             {
  1774.             yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
  1775.             yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
  1776.             }
  1777.         else
  1778.             {
  1779.             yy_full_match = yy_cp;
  1780.             yy_full_state = yy_state_ptr;
  1781.             yy_full_lp = yy_lp;
  1782.             break;
  1783.             }
  1784.         ++yy_lp;
  1785.         goto find_rule;
  1786.         }
  1787.         --yy_cp;
  1788.         yy_current_state = *--yy_state_ptr;
  1789.         yy_lp = yy_accept[yy_current_state];
  1790.         }
  1791. #line 436 "/u/icdc/rdt/tools/lib/flexskel.cc"
  1792.  
  1793.     YY_DO_BEFORE_ACTION;
  1794.     YY_USER_ACTION;
  1795.  
  1796. do_action:      /* this label is used only to access EOF actions */
  1797. #if YY_lex_DEBUG != 0
  1798.     if ( yy___flex_debug )
  1799.         {
  1800.         if ( yy_act == 0 )
  1801.             fprintf( stderr, "--scanner backtracking\n" );
  1802.         else if ( yy_act < YY_END_OF_BUFFER -1 )
  1803.             fprintf( stderr, 
  1804.              "--accepting rule at line %d (\"%s\")\n",
  1805.              yy_rule_linenum[yy_act], yy___text );
  1806.         else if ( yy_act == YY_END_OF_BUFFER -1 )
  1807.             fprintf( stderr, 
  1808.              "--accepting default rule (\"%s\")\n",
  1809.              yy___text );
  1810.         else if ( yy_act == YY_END_OF_BUFFER )
  1811.             fprintf( stderr, "--(end of buffer or a NUL)\n" );
  1812.         else
  1813.             fprintf( stderr, "--EOF\n" );
  1814.         }
  1815. #endif
  1816.     switch ( yy_act )
  1817.         {
  1818. /* % actions go here */ 
  1819. case 1:
  1820. #line 92 "scan.l"
  1821. indented_code = true; BEGIN(CODEBLOCK);
  1822.     YY_BREAK
  1823. case 2:
  1824. #line 93 "scan.l"
  1825. ++linenum; /* treat as a comment */
  1826.     YY_BREAK
  1827. case 3:
  1828. #line 94 "scan.l"
  1829. ++linenum;  /* treat as a c++ comment */
  1830.     YY_BREAK
  1831. case 4:
  1832. #line 95 "scan.l"
  1833. ECHO; BEGIN(C_COMMENT);
  1834.     YY_BREAK
  1835. case 5:
  1836. #line 96 "scan.l"
  1837. return ( SCDECL );
  1838.     YY_BREAK
  1839. case 6:
  1840. #line 97 "scan.l"
  1841. return ( XSCDECL );
  1842.     YY_BREAK
  1843. case 7:
  1844. #line 98 "scan.l"
  1845. BEGIN(NAME_DECLARE);
  1846.     YY_BREAK
  1847. case 8:
  1848. #line 99 "scan.l"
  1849. BEGIN(DEFINE_DECLARE);
  1850.     YY_BREAK
  1851. case 9:
  1852. #line 102 "scan.l"
  1853. {
  1854.             ++linenum;
  1855.             line_directive_out( stdout );
  1856.             indented_code = false;
  1857.             BEGIN(CODEBLOCK);
  1858.             }
  1859.     YY_BREAK
  1860. case 10:
  1861. #line 108 "scan.l"
  1862. {
  1863.             ++linenum;
  1864.             line_directive_out( headerfile );
  1865.             BEGIN(HEADER_BLOC);
  1866.             }
  1867.     YY_BREAK
  1868. case 11:
  1869. #line 114 "scan.l"
  1870. return ( WHITESPACE );
  1871.     YY_BREAK
  1872. case 12:
  1873. #line 116 "scan.l"
  1874. {
  1875.             set_lexer_name((char *)0);
  1876.             sectnum = 2;
  1877.             line_directive_out( headerfile );
  1878.                   if(headerfilename!=NULL)
  1879.                 {
  1880.                    fprintf(stdout,
  1881.                           "#include \"%s\"\n",includefilename);
  1882.               header_skeleton_out();
  1883.                  };
  1884.             line_directive_out( stdout );
  1885.             BEGIN(SECT2PROLOG);
  1886.             return ( SECTEND );
  1887.             }
  1888.     YY_BREAK
  1889. case 13:
  1890. #line 131 "scan.l"
  1891. {
  1892.     pinpoint_message( "warning - %%used/%%unused have been deprecated" );
  1893.             checking_used = REALLY_USED; BEGIN(USED_LIST);
  1894.             }
  1895.     YY_BREAK
  1896. case 14:
  1897. #line 135 "scan.l"
  1898. {
  1899.             checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
  1900.     pinpoint_message( "warning - %%used/%%unused have been deprecated" );
  1901.             checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
  1902.             }
  1903.     YY_BREAK
  1904. case 15:
  1905. #line 142 "scan.l"
  1906. {
  1907. #ifdef NOTDEF
  1908.             fprintf( stderr,
  1909.                  "old-style lex command at line %d ignored:\n\t%s",
  1910.                  linenum, yytext );
  1911. #endif
  1912.             ++linenum;
  1913.             }
  1914.     YY_BREAK
  1915. case 16:
  1916. #line 151 "scan.l"
  1917. /* ignore old lex directive */
  1918.     YY_BREAK
  1919. case 17:
  1920. #line 153 "scan.l"
  1921. {
  1922.             ++linenum;
  1923.             xlation =
  1924.                 (int *) malloc( sizeof( int ) * (unsigned) csize );
  1925.  
  1926.             if ( ! xlation )
  1927.                 flexfatal(
  1928.                 "dynamic memory failure building %t table" );
  1929.  
  1930.             for ( i = 0; i < csize; ++i )
  1931.                 xlation[i] = 0;
  1932.  
  1933.             num_xlations = 0;
  1934.  
  1935.             BEGIN(XLATION);
  1936.             }
  1937.     YY_BREAK
  1938. case 18:
  1939. #line 170 "scan.l"
  1940. synerr( "unrecognized '%' directive" );
  1941.     YY_BREAK
  1942. case 19:
  1943. #line 172 "scan.l"
  1944. {
  1945.             (void) strcpy( nmstr, (char *) yytext );
  1946.             didadef = false;
  1947.             BEGIN(PICKUPDEF);
  1948.             }
  1949.     YY_BREAK
  1950. case 20:
  1951. #line 178 "scan.l"
  1952. RETURNNAME;
  1953.     YY_BREAK
  1954. case 21:
  1955. #line 179 "scan.l"
  1956. ++linenum; /* allows blank lines in section 1 */
  1957.     YY_BREAK
  1958. case 22:
  1959. #line 180 "scan.l"
  1960. ++linenum; return ( '\n' );
  1961.     YY_BREAK
  1962. case 23:
  1963. #line 181 "scan.l"
  1964. {synerr( "illegal character" ); 
  1965.                          fprintf(stderr,
  1966.                            "Char : \\0x%x\n",yytext[yyleng-1]);
  1967.             BEGIN(RECOVER);}
  1968.     YY_BREAK
  1969. case 24:
  1970. #line 186 "scan.l"
  1971. {set_lexer_name((char *)yytext);}
  1972.     YY_BREAK
  1973. case 25:
  1974. #line 187 "scan.l"
  1975. ;
  1976.     YY_BREAK
  1977. case 26:
  1978. #line 188 "scan.l"
  1979. ++linenum;BEGIN(INITIAL);
  1980.     YY_BREAK
  1981. case 27:
  1982. #line 189 "scan.l"
  1983. synerr( "illegal character" );BEGIN(RECOVER);
  1984.     YY_BREAK
  1985. case 28:
  1986. #line 191 "scan.l"
  1987. { set_lexer_name((char *)0);
  1988.             line_directive_out( headerfile );
  1989.             fprintf(headerfile,"#define YY_%s_%s ",lexer_name,yytext);
  1990.              BEGIN(DEFINE_CONTENT);
  1991.             }
  1992.     YY_BREAK
  1993. case 29:
  1994. #line 197 "scan.l"
  1995. synerr( "illegal character" ); BEGIN(RECOVER);
  1996.     YY_BREAK
  1997. case 30:
  1998. #line 198 "scan.l"
  1999. ++linenum;BEGIN(INITIAL);
  2000.     YY_BREAK
  2001. case 31:
  2002. #line 200 "scan.l"
  2003. HEADER_ECHO;++linenum;
  2004.     YY_BREAK
  2005. case 32:
  2006. #line 201 "scan.l"
  2007. ++linenum;HEADER_ECHO;BEGIN(INITIAL);
  2008.     YY_BREAK
  2009. case 33:
  2010. #line 202 "scan.l"
  2011. HEADER_ECHO;
  2012.     YY_BREAK
  2013. case 34:
  2014. #line 204 "scan.l"
  2015. ECHO; BEGIN(INITIAL);
  2016.     YY_BREAK
  2017. case 35:
  2018. #line 205 "scan.l"
  2019. ++linenum; ECHO; BEGIN(INITIAL);
  2020.     YY_BREAK
  2021. case 36:
  2022. #line 206 "scan.l"
  2023. ECHO;
  2024.     YY_BREAK
  2025. case 37:
  2026. #line 207 "scan.l"
  2027. ECHO;
  2028.     YY_BREAK
  2029. case 38:
  2030. #line 208 "scan.l"
  2031. ++linenum; ECHO;
  2032.     YY_BREAK
  2033. case 39:
  2034. #line 210 "scan.l"
  2035. ++linenum; BEGIN(INITIAL);
  2036.     YY_BREAK
  2037. case 40:
  2038. #line 211 "scan.l"
  2039. HEADER_ECHO; CHECK_REJECT(yytext);
  2040.     YY_BREAK
  2041. case 41:
  2042. #line 212 "scan.l"
  2043. HEADER_ECHO; CHECK_YYMORE(yytext);
  2044.     YY_BREAK
  2045. case 42:
  2046. #line 213 "scan.l"
  2047. HEADER_ECHO;
  2048.     YY_BREAK
  2049. case 43:
  2050. #line 214 "scan.l"
  2051. {
  2052.             ++linenum;
  2053.             HEADER_ECHO;
  2054.             }
  2055.     YY_BREAK
  2056. case 44:
  2057. #line 220 "scan.l"
  2058. ++linenum; BEGIN(SECT2);
  2059.     YY_BREAK
  2060. case 45:
  2061. #line 221 "scan.l"
  2062. HEADER_ECHO; CHECK_REJECT(yytext);
  2063.     YY_BREAK
  2064. case 46:
  2065. #line 222 "scan.l"
  2066. HEADER_ECHO; CHECK_YYMORE(yytext);
  2067.     YY_BREAK
  2068. case 47:
  2069. #line 223 "scan.l"
  2070. HEADER_ECHO;
  2071.     YY_BREAK
  2072. case 48:
  2073. #line 224 "scan.l"
  2074. {
  2075.             ++linenum;
  2076.             HEADER_ECHO;
  2077.             }
  2078.     YY_BREAK
  2079. case 49:
  2080. #line 232 "scan.l"
  2081. ++linenum; BEGIN(INITIAL);
  2082.     YY_BREAK
  2083. case 50:
  2084. #line 233 "scan.l"
  2085. ECHO; CHECK_REJECT(yytext);
  2086.     YY_BREAK
  2087. case 51:
  2088. #line 234 "scan.l"
  2089. ECHO; CHECK_YYMORE(yytext);
  2090.     YY_BREAK
  2091. case 52:
  2092. #line 235 "scan.l"
  2093. ECHO;
  2094.     YY_BREAK
  2095. case 53:
  2096. #line 236 "scan.l"
  2097. {
  2098.             ++linenum;
  2099.             ECHO;
  2100.             if ( indented_code )
  2101.                 BEGIN(INITIAL);
  2102.             }
  2103.     YY_BREAK
  2104. case 54:
  2105. #line 244 "scan.l"
  2106. /* separates name and definition */
  2107.     YY_BREAK
  2108. case 55:
  2109. #line 246 "scan.l"
  2110. {
  2111.             (void) strcpy( (char *) nmdef, (char *) yytext );
  2112.  
  2113.             for ( i = strlen( (char *) nmdef ) - 1;
  2114.                   i >= 0 &&
  2115.                   nmdef[i] == ' ' || nmdef[i] == '\t';
  2116.                   --i )
  2117.                 ;
  2118.  
  2119.             nmdef[i + 1] = '\0';
  2120.  
  2121.                         ndinstal( nmstr, nmdef );
  2122.             didadef = true;
  2123.             }
  2124.     YY_BREAK
  2125. case 56:
  2126. #line 261 "scan.l"
  2127. {
  2128.             if ( ! didadef )
  2129.                 synerr( "incomplete name definition" );
  2130.             BEGIN(INITIAL);
  2131.             ++linenum;
  2132.             }
  2133.     YY_BREAK
  2134. case 57:
  2135. #line 268 "scan.l"
  2136. ++linenum; BEGIN(INITIAL); RETURNNAME;
  2137.     YY_BREAK
  2138. case 58:
  2139. #line 271 "scan.l"
  2140. ++linenum; BEGIN(INITIAL);
  2141.     YY_BREAK
  2142. case 59:
  2143. #line 272 "scan.l"
  2144.  
  2145.     YY_BREAK
  2146. case 60:
  2147. #line 273 "scan.l"
  2148. {
  2149.             if ( all_upper( yytext ) )
  2150.                 reject_really_used = checking_used;
  2151.             else
  2152.                 synerr( "unrecognized %used/%unused construct" );
  2153.             }
  2154.     YY_BREAK
  2155. case 61:
  2156. #line 279 "scan.l"
  2157. {
  2158.             if ( all_lower( yytext ) )
  2159.                 yymore_really_used = checking_used;
  2160.             else
  2161.                 synerr( "unrecognized %used/%unused construct" );
  2162.             }
  2163.     YY_BREAK
  2164. case 62:
  2165. #line 285 "scan.l"
  2166. synerr( "unrecognized %used/%unused construct" );
  2167.     YY_BREAK
  2168. case 63:
  2169. #line 288 "scan.l"
  2170. ++linenum; BEGIN(INITIAL);
  2171.     YY_BREAK
  2172. case 64:
  2173. #line 289 "scan.l"
  2174. ++num_xlations; new_xlation = true;
  2175.     YY_BREAK
  2176. case 65:
  2177. #line 290 "scan.l"
  2178. synerr( "bad row in translation table" );
  2179.     YY_BREAK
  2180. case 66:
  2181. #line 291 "scan.l"
  2182. /* ignore whitespace */
  2183.     YY_BREAK
  2184. case 67:
  2185. #line 293 "scan.l"
  2186. {
  2187.             xlation[myesc( yytext )] =
  2188.                 (new_xlation ? num_xlations : -num_xlations);
  2189.             new_xlation = false;
  2190.             }
  2191.     YY_BREAK
  2192. case 68:
  2193. #line 298 "scan.l"
  2194. {
  2195.             xlation[yytext[0]] =
  2196.                 (new_xlation ? num_xlations : -num_xlations);
  2197.             new_xlation = false;
  2198.             }
  2199.     YY_BREAK
  2200. case 69:
  2201. #line 304 "scan.l"
  2202. ++linenum;
  2203.     YY_BREAK
  2204. case 70:
  2205. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2206. yy_c_buf_p = yy_cp -= 1;
  2207. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2208. #line 307 "scan.l"
  2209. {
  2210.             ++linenum;
  2211.             ACTION_ECHO;
  2212.             MARK_END_OF_PROLOG;
  2213.             BEGIN(SECT2);
  2214.             }
  2215.     YY_BREAK
  2216. case 71:
  2217. #line 314 "scan.l"
  2218. ++linenum; ACTION_ECHO;
  2219.     YY_BREAK
  2220. case YY_STATE_EOF(SECT2PROLOG):
  2221. #line 316 "scan.l"
  2222. MARK_END_OF_PROLOG; yyterminate();
  2223.     YY_BREAK
  2224. case 73:
  2225. #line 318 "scan.l"
  2226. ++linenum; /* allow blank lines in section 2 */
  2227.     YY_BREAK
  2228. case 74:
  2229. #line 320 "scan.l"
  2230. {
  2231.             line_directive_out( headerfile );
  2232.             BEGIN(HEADER2_BLOC);
  2233.             }
  2234.     YY_BREAK
  2235. case 75:
  2236. #line 324 "scan.l"
  2237. {
  2238.             indented_code = (yytext[0] != '%');
  2239.             doing_codeblock = true;
  2240.             bracelevel = 1;
  2241.  
  2242.             if ( indented_code )
  2243.                 ACTION_ECHO;
  2244.  
  2245.             BEGIN(CODEBLOCK_2);
  2246.             }
  2247.     YY_BREAK
  2248. case 76:
  2249. #line 335 "scan.l"
  2250. BEGIN(SC); return ( '<' );
  2251.     YY_BREAK
  2252. case 77:
  2253. #line 336 "scan.l"
  2254. return ( '^' );
  2255.     YY_BREAK
  2256. case 78:
  2257. #line 337 "scan.l"
  2258. BEGIN(QUOTE); return ( '"' );
  2259.     YY_BREAK
  2260. case 79:
  2261. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2262. yy_c_buf_p = yy_cp = yy_bp + 1;
  2263. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2264. #line 338 "scan.l"
  2265. BEGIN(NUM); return ( '{' );
  2266.     YY_BREAK
  2267. case 80:
  2268. #line 339 "scan.l"
  2269. BEGIN(BRACEERROR);
  2270.     YY_BREAK
  2271. case 81:
  2272. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2273. yy_c_buf_p = yy_cp = yy_bp + 1;
  2274. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2275. #line 340 "scan.l"
  2276. return ( '$' );
  2277.     YY_BREAK
  2278. case 82:
  2279. #line 342 "scan.l"
  2280. {
  2281.             bracelevel = 1;
  2282.             BEGIN(PERCENT_BRACE_ACTION);
  2283.             return ( '\n' );
  2284.             }
  2285.     YY_BREAK
  2286. case 83:
  2287. #line 347 "scan.l"
  2288. continued_action = true; ++linenum; return ( '\n' );
  2289.     YY_BREAK
  2290. case 84:
  2291. #line 349 "scan.l"
  2292. {
  2293.             /* this rule is separate from the one below because
  2294.              * otherwise we get variable trailing context, so
  2295.              * we can't build the scanner using -{f,F}
  2296.              */
  2297.             bracelevel = 0;
  2298.             continued_action = false;
  2299.             BEGIN(ACTION);
  2300.             return ( '\n' );
  2301.             }
  2302.     YY_BREAK
  2303. case 85:
  2304. #line 360 "scan.l"
  2305. {
  2306.             bracelevel = 0;
  2307.             continued_action = false;
  2308.             BEGIN(ACTION);
  2309.             return ( '\n' );
  2310.             }
  2311.     YY_BREAK
  2312. case 86:
  2313. #line 367 "scan.l"
  2314. ++linenum; return ( '\n' );
  2315.     YY_BREAK
  2316. case 87:
  2317. #line 369 "scan.l"
  2318. return ( EOF_OP );
  2319.     YY_BREAK
  2320. case 88:
  2321. #line 371 "scan.l"
  2322. {
  2323.             sectnum = 3;
  2324.             BEGIN(SECT3);
  2325.             return ( EOF ); /* to stop the parser */
  2326.             }
  2327.     YY_BREAK
  2328. case 89:
  2329. #line 377 "scan.l"
  2330. {
  2331.             int cclval;
  2332.  
  2333.             (void) strcpy( nmstr, (char *) yytext );
  2334.  
  2335.             /* check to see if we've already encountered this ccl */
  2336.             if ( (cclval = ccllookup( (Char *) nmstr )) )
  2337.                 {
  2338.                 yylval = cclval;
  2339.                 ++cclreuse;
  2340.                 return ( PREVCCL );
  2341.                 }
  2342.             else
  2343.                 {
  2344.                 /* we fudge a bit.  We know that this ccl will
  2345.                  * soon be numbered as lastccl + 1 by cclinit
  2346.                  */
  2347.                 cclinstal( (Char *) nmstr, lastccl + 1 );
  2348.  
  2349.                 /* push back everything but the leading bracket
  2350.                  * so the ccl can be rescanned
  2351.                  */
  2352.                 PUT_BACK_STRING((Char *) nmstr, 1);
  2353.  
  2354.                 BEGIN(FIRSTCCL);
  2355.                 return ( '[' );
  2356.                 }
  2357.             }
  2358.     YY_BREAK
  2359. case 90:
  2360. #line 406 "scan.l"
  2361. {
  2362.             register Char *nmdefptr;
  2363.             Char *ndlookup();
  2364.  
  2365.             (void) strcpy( nmstr, (char *) yytext );
  2366.             nmstr[yyleng - 1] = '\0';  /* chop trailing brace */
  2367.  
  2368.             /* lookup from "nmstr + 1" to chop leading brace */
  2369.             if ( ! (nmdefptr = ndlookup( nmstr + 1 )) )
  2370.                 synerr( "undefined {name}" );
  2371.  
  2372.             else
  2373.                 { /* push back name surrounded by ()'s */
  2374.                 unput(')');
  2375.                 PUT_BACK_STRING(nmdefptr, 0);
  2376.                 unput('(');
  2377.                 }
  2378.             }
  2379.     YY_BREAK
  2380. case 91:
  2381. #line 425 "scan.l"
  2382. return ( yytext[0] );
  2383.     YY_BREAK
  2384. case 92:
  2385. #line 426 "scan.l"
  2386. RETURNCHAR;
  2387.     YY_BREAK
  2388. case 93:
  2389. #line 427 "scan.l"
  2390. ++linenum; return ( '\n' );
  2391.     YY_BREAK
  2392. case 94:
  2393. #line 430 "scan.l"
  2394. return ( ',' );
  2395.     YY_BREAK
  2396. case 95:
  2397. #line 431 "scan.l"
  2398. BEGIN(SECT2); return ( '>' );
  2399.     YY_BREAK
  2400. case 96:
  2401. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2402. yy_c_buf_p = yy_cp = yy_bp + 1;
  2403. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2404. #line 432 "scan.l"
  2405. BEGIN(CARETISBOL); return ( '>' );
  2406.     YY_BREAK
  2407. case 97:
  2408. #line 433 "scan.l"
  2409. RETURNNAME;
  2410.     YY_BREAK
  2411. case 98:
  2412. #line 434 "scan.l"
  2413. synerr( "bad start condition name" );
  2414.     YY_BREAK
  2415. case 99:
  2416. #line 436 "scan.l"
  2417. BEGIN(SECT2); return ( '^' );
  2418.     YY_BREAK
  2419. case 100:
  2420. #line 439 "scan.l"
  2421. RETURNCHAR;
  2422.     YY_BREAK
  2423. case 101:
  2424. #line 440 "scan.l"
  2425. BEGIN(SECT2); return ( '"' );
  2426.     YY_BREAK
  2427. case 102:
  2428. #line 442 "scan.l"
  2429. {
  2430.             synerr( "missing quote" );
  2431.             BEGIN(SECT2);
  2432.             ++linenum;
  2433.             return ( '"' );
  2434.             }
  2435.     YY_BREAK
  2436. case 103:
  2437. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2438. yy_c_buf_p = yy_cp = yy_bp + 1;
  2439. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2440. #line 450 "scan.l"
  2441. BEGIN(CCL); return ( '^' );
  2442.     YY_BREAK
  2443. case 104:
  2444. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2445. yy_c_buf_p = yy_cp = yy_bp + 1;
  2446. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2447. #line 451 "scan.l"
  2448. return ( '^' );
  2449.     YY_BREAK
  2450. case 105:
  2451. #line 452 "scan.l"
  2452. BEGIN(CCL); yylval = '-'; return ( CHAR );
  2453.     YY_BREAK
  2454. case 106:
  2455. #line 453 "scan.l"
  2456. BEGIN(CCL); RETURNCHAR;
  2457.     YY_BREAK
  2458. case 107:
  2459. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  2460. yy_c_buf_p = yy_cp = yy_bp + 1;
  2461. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2462. #line 455 "scan.l"
  2463. return ( '-' );
  2464.     YY_BREAK
  2465. case 108:
  2466. #line 456 "scan.l"
  2467. RETURNCHAR;
  2468.     YY_BREAK
  2469. case 109:
  2470. #line 457 "scan.l"
  2471. BEGIN(SECT2); return ( ']' );
  2472.     YY_BREAK
  2473. case 110:
  2474. #line 460 "scan.l"
  2475. {
  2476.             yylval = myctoi( yytext );
  2477.             return ( NUMBER );
  2478.             }
  2479.     YY_BREAK
  2480. case 111:
  2481. #line 465 "scan.l"
  2482. return ( ',' );
  2483.     YY_BREAK
  2484. case 112:
  2485. #line 466 "scan.l"
  2486. BEGIN(SECT2); return ( '}' );
  2487.     YY_BREAK
  2488. case 113:
  2489. #line 468 "scan.l"
  2490. {
  2491.             synerr( "bad character inside {}'s" );
  2492.             BEGIN(SECT2);
  2493.             return ( '}' );
  2494.             }
  2495.     YY_BREAK
  2496. case 114:
  2497. #line 474 "scan.l"
  2498. {
  2499.             synerr( "missing }" );
  2500.             BEGIN(SECT2);
  2501.             ++linenum;
  2502.             return ( '}' );
  2503.             }
  2504.     YY_BREAK
  2505. case 115:
  2506. #line 482 "scan.l"
  2507. synerr( "bad name in {}'s" ); BEGIN(SECT2);
  2508.     YY_BREAK
  2509. case 116:
  2510. #line 483 "scan.l"
  2511. synerr( "missing }" ); ++linenum; BEGIN(SECT2);
  2512.     YY_BREAK
  2513. case 117:
  2514. #line 486 "scan.l"
  2515. bracelevel = 0;
  2516.     YY_BREAK
  2517. case 118:
  2518. #line 487 "scan.l"
  2519. {
  2520.             ACTION_ECHO;
  2521.             CHECK_REJECT(yytext);
  2522.             }
  2523.     YY_BREAK
  2524. case 119:
  2525. #line 491 "scan.l"
  2526. {
  2527.             ACTION_ECHO;
  2528.             CHECK_YYMORE(yytext);
  2529.             }
  2530.     YY_BREAK
  2531. case 120:
  2532. #line 495 "scan.l"
  2533. ACTION_ECHO;
  2534.     YY_BREAK
  2535. case 121:
  2536. #line 496 "scan.l"
  2537. {
  2538.             ++linenum;
  2539.             ACTION_ECHO;
  2540.             if ( bracelevel == 0 ||
  2541.                  (doing_codeblock && indented_code) )
  2542.                 {
  2543.                 if ( ! doing_codeblock )
  2544.                 fputs( "\tYY_BREAK\n", temp_action_file );
  2545.                 
  2546.                 doing_codeblock = false;
  2547.                 BEGIN(SECT2);
  2548.                 }
  2549.             }
  2550.     YY_BREAK
  2551.     /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
  2552. case 122:
  2553. #line 512 "scan.l"
  2554. ACTION_ECHO; ++bracelevel;
  2555.     YY_BREAK
  2556. case 123:
  2557. #line 513 "scan.l"
  2558. ACTION_ECHO; --bracelevel;
  2559.     YY_BREAK
  2560. case 124:
  2561. #line 514 "scan.l"
  2562. ACTION_ECHO;
  2563.     YY_BREAK
  2564. case 125:
  2565. #line 515 "scan.l"
  2566. ACTION_ECHO;
  2567.     YY_BREAK
  2568. case 126:
  2569. #line 516 "scan.l"
  2570. ++linenum;ACTION_ECHO; 
  2571.     YY_BREAK
  2572. case 127:
  2573. #line 517 "scan.l"
  2574. ACTION_ECHO; BEGIN(ACTION_COMMENT);
  2575.     YY_BREAK
  2576. case 128:
  2577. #line 518 "scan.l"
  2578. ACTION_ECHO; /* character constant */
  2579.     YY_BREAK
  2580. case 129:
  2581. #line 519 "scan.l"
  2582. ACTION_ECHO; BEGIN(ACTION_STRING);
  2583.     YY_BREAK
  2584. case 130:
  2585. #line 520 "scan.l"
  2586. {
  2587.             ++linenum;
  2588.             ACTION_ECHO;
  2589.             if ( bracelevel == 0 )
  2590.                 {
  2591.                 fputs( "\tYY_BREAK\n", temp_action_file );
  2592.                 BEGIN(SECT2);
  2593.                 }
  2594.             }
  2595.     YY_BREAK
  2596. case 131:
  2597. #line 529 "scan.l"
  2598. ACTION_ECHO;
  2599.     YY_BREAK
  2600. case 132:
  2601. #line 531 "scan.l"
  2602. ACTION_ECHO; BEGIN(ACTION);
  2603.     YY_BREAK
  2604. case 133:
  2605. #line 532 "scan.l"
  2606. ACTION_ECHO;
  2607.     YY_BREAK
  2608. case 134:
  2609. #line 533 "scan.l"
  2610. ACTION_ECHO;
  2611.     YY_BREAK
  2612. case 135:
  2613. #line 534 "scan.l"
  2614. ++linenum; ACTION_ECHO;
  2615.     YY_BREAK
  2616. case 136:
  2617. #line 535 "scan.l"
  2618. ACTION_ECHO;
  2619.     YY_BREAK
  2620. case 137:
  2621. #line 537 "scan.l"
  2622. ACTION_ECHO;
  2623.     YY_BREAK
  2624. case 138:
  2625. #line 538 "scan.l"
  2626. ACTION_ECHO;
  2627.     YY_BREAK
  2628. case 139:
  2629. #line 539 "scan.l"
  2630. ++linenum; ACTION_ECHO;
  2631.     YY_BREAK
  2632. case 140:
  2633. #line 540 "scan.l"
  2634. ACTION_ECHO; BEGIN(ACTION);
  2635.     YY_BREAK
  2636. case 141:
  2637. #line 541 "scan.l"
  2638. ACTION_ECHO;
  2639.     YY_BREAK
  2640. case YY_STATE_EOF(ACTION):
  2641. case YY_STATE_EOF(ACTION_COMMENT):
  2642. case YY_STATE_EOF(ACTION_STRING):
  2643. #line 543 "scan.l"
  2644. {
  2645.             synerr( "EOF encountered inside an action" );
  2646.             yyterminate();
  2647.             }
  2648.     YY_BREAK
  2649. case 143:
  2650. #line 549 "scan.l"
  2651. {
  2652.             yylval = myesc( yytext );
  2653.             return ( CHAR );
  2654.             }
  2655.     YY_BREAK
  2656. case 144:
  2657. #line 554 "scan.l"
  2658. {
  2659.             yylval = myesc( yytext );
  2660.             BEGIN(CCL);
  2661.             return ( CHAR );
  2662.             }
  2663.     YY_BREAK
  2664. case 145:
  2665. #line 561 "scan.l"
  2666. ECHO;
  2667.     YY_BREAK
  2668. case 146:
  2669. #line 562 "scan.l"
  2670. YY_FATAL_ERROR( "flex scanner jammed" );
  2671.     YY_BREAK
  2672.         case YY_STATE_EOF(INITIAL):
  2673.         case YY_STATE_EOF(SECT2):
  2674.         case YY_STATE_EOF(SECT3):
  2675.         case YY_STATE_EOF(CODEBLOCK):
  2676.         case YY_STATE_EOF(PICKUPDEF):
  2677.         case YY_STATE_EOF(SC):
  2678.         case YY_STATE_EOF(CARETISBOL):
  2679.         case YY_STATE_EOF(NUM):
  2680.         case YY_STATE_EOF(QUOTE):
  2681.         case YY_STATE_EOF(FIRSTCCL):
  2682.         case YY_STATE_EOF(CCL):
  2683.         case YY_STATE_EOF(RECOVER):
  2684.         case YY_STATE_EOF(BRACEERROR):
  2685.         case YY_STATE_EOF(C_COMMENT):
  2686.         case YY_STATE_EOF(PERCENT_BRACE_ACTION):
  2687.         case YY_STATE_EOF(USED_LIST):
  2688.         case YY_STATE_EOF(CODEBLOCK_2):
  2689.         case YY_STATE_EOF(XLATION):
  2690.         case YY_STATE_EOF(HEADER_BLOC):
  2691.         case YY_STATE_EOF(HEADER2_BLOC):
  2692.         case YY_STATE_EOF(NAME_DECLARE):
  2693.         case YY_STATE_EOF(DEFINE_DECLARE):
  2694.         case YY_STATE_EOF(DEFINE_CONTENT):
  2695.         yyterminate();
  2696. #line 463 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2697.  
  2698.         case YY_END_OF_BUFFER:
  2699.         {
  2700.         /* amount of text matched not including the EOB char */
  2701.         int yy_amount_of_matched_text = yy_cp - yy___text - 1;
  2702.  
  2703.         /* undo the effects of YY_DO_BEFORE_ACTION */
  2704.         *yy_cp = yy_hold_char;
  2705.  
  2706.         /* note that here we test for yy_c_buf_p "<=" to the position
  2707.          * of the first EOB in the buffer, since yy_c_buf_p will
  2708.          * already have been incremented past the NUL character
  2709.          * (since all states make transitions on EOB to the end-
  2710.          * of-buffer state).  Contrast this with the test in yyinput().
  2711.          */
  2712.         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2713.             /* this was really a NUL */
  2714.             {
  2715.             yy_state_type yy_next_state;
  2716.  
  2717.             yy_c_buf_p = yy___text + yy_amount_of_matched_text;
  2718.  
  2719.             yy_current_state = yy_get_previous_state();
  2720.  
  2721.             /* okay, we're now positioned to make the
  2722.              * NUL transition.  We couldn't have
  2723.              * yy_get_previous_state() go ahead and do it
  2724.              * for us because it doesn't know how to deal
  2725.              * with the possibility of jamming (and we
  2726.              * don't want to build jamming into it because
  2727.              * then it will run more slowly)
  2728.              */
  2729.  
  2730.             yy_next_state = yy_try_NUL_trans( yy_current_state );
  2731.  
  2732.             yy_bp = yy___text + YY_MORE_ADJ;
  2733.  
  2734.             if ( yy_next_state )
  2735.             {
  2736.             /* consume the NUL */
  2737.             yy_cp = ++yy_c_buf_p;
  2738.             yy_current_state = yy_next_state;
  2739.             goto yy_match;
  2740.             }
  2741.  
  2742.             else
  2743.             {
  2744. /* % code to do backtracking for compressed tables and set up yy_cp goes here */ 
  2745. #line 511 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2746.             goto yy_find_action;
  2747.             }
  2748.             }
  2749.  
  2750.         else switch ( yy_get_next_buffer() )
  2751.             {
  2752.             case EOB_ACT_END_OF_FILE:
  2753.             {
  2754.             yy_did_buffer_switch_on_eof = 0;
  2755.  
  2756.             if ( yywrap() )
  2757.                 {
  2758.                 /* note: because we've taken care in
  2759.                  * yy_get_next_buffer() to have set up yy___text,
  2760.                  * we can now set up yy_c_buf_p so that if some
  2761.                  * total hoser (like flex itself) wants
  2762.                  * to call the scanner after we return the
  2763.                  * YY_NULL, it'll still work - another YY_NULL
  2764.                  * will get returned.
  2765.                  */
  2766.                 yy_c_buf_p = yy___text + YY_MORE_ADJ;
  2767.  
  2768.                 yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  2769.                 goto do_action;
  2770.                 }
  2771.  
  2772.             else
  2773.                 {
  2774.                 if ( ! yy_did_buffer_switch_on_eof )
  2775.                 YY_NEW_FILE;
  2776.                 }
  2777.             }
  2778.             break;
  2779.  
  2780.             case EOB_ACT_CONTINUE_SCAN:
  2781.             yy_c_buf_p = yy___text + yy_amount_of_matched_text;
  2782.  
  2783.             yy_current_state = yy_get_previous_state();
  2784.  
  2785.             yy_cp = yy_c_buf_p;
  2786.             yy_bp = yy___text + YY_MORE_ADJ;
  2787.             goto yy_match;
  2788.  
  2789.             case EOB_ACT_LAST_MATCH:
  2790.             yy_c_buf_p =
  2791.                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
  2792.  
  2793.             yy_current_state = yy_get_previous_state();
  2794.  
  2795.             yy_cp = yy_c_buf_p;
  2796.             yy_bp = yy___text + YY_MORE_ADJ;
  2797.             goto yy_find_action;
  2798.             }
  2799.         break;
  2800.         }
  2801.  
  2802.         default:
  2803. #if YY_lex_DEBUG != 0
  2804.         fprintf(stderr, "action # %d\n", yy_act );
  2805. #endif
  2806.         YY_FATAL_ERROR(
  2807.             "fatal flex scanner internal error--no action found" );
  2808.         }
  2809.     }
  2810.     yyterminate();/* avoid the no return value error message on MS-C7/dos */
  2811.     }
  2812.  
  2813.  
  2814. /* yy_get_next_buffer - try to read in a new buffer
  2815.  *
  2816.  * synopsis
  2817.  *     int yy_get_next_buffer();
  2818.  *     
  2819.  * returns a code representing an action
  2820.  *     EOB_ACT_LAST_MATCH - 
  2821.  *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  2822.  *     EOB_ACT_END_OF_FILE - end of file
  2823.  */
  2824. #ifndef YY_USE_CLASS
  2825. static int yy_get_next_buffer()
  2826. #else
  2827. int YY_lex_CLASS::yy_get_next_buffer()
  2828. #endif
  2829.     {
  2830.     register YY_lex_CHAR *dest = yy_current_buffer->yy_ch_buf;
  2831.     register YY_lex_CHAR *source = yy___text - 1; /* copy prev. char, too */
  2832.     register int number_to_move, i;
  2833.     int ret_val;
  2834.  
  2835.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  2836.     YY_FATAL_ERROR(
  2837.         "fatal flex scanner internal error--end of buffer missed" );
  2838.  
  2839.     /* try to read more data */
  2840.  
  2841.     /* first move last chars to start of buffer */
  2842.     number_to_move = yy_c_buf_p - yy___text;
  2843.  
  2844.     for ( i = 0; i < number_to_move; ++i )
  2845.     *(dest++) = *(source++);
  2846.  
  2847.     if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
  2848.     /* don't do the read, it's not guaranteed to return an EOF,
  2849.      * just force an EOF
  2850.      */
  2851.     yy_n_chars = 0;
  2852.  
  2853.     else
  2854.     {
  2855.     int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1;
  2856.  
  2857.     if ( num_to_read > YY_READ_BUF_SIZE )
  2858.         num_to_read = YY_READ_BUF_SIZE;
  2859.  
  2860.     else if ( num_to_read <= 0 )
  2861.         YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
  2862.  
  2863.     /* read in more data */
  2864.     YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  2865.           yy_n_chars, num_to_read );
  2866.     }
  2867.  
  2868.     if ( yy_n_chars == 0 )
  2869.     {
  2870.     if ( number_to_move - YY_MORE_ADJ == 1 )
  2871.         {
  2872.         ret_val = EOB_ACT_END_OF_FILE;
  2873.         yy_current_buffer->yy_eof_status = EOF_DONE;
  2874.         }
  2875.  
  2876.     else
  2877.         {
  2878.         ret_val = EOB_ACT_LAST_MATCH;
  2879.         yy_current_buffer->yy_eof_status = EOF_PENDING;
  2880.         }
  2881.     }
  2882.  
  2883.     else
  2884.     ret_val = EOB_ACT_CONTINUE_SCAN;
  2885.  
  2886.     yy_n_chars += number_to_move;
  2887.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  2888.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  2889.  
  2890.     /* yy___text begins at the second character in yy_ch_buf; the first
  2891.      * character is the one which preceded it before reading in the latest
  2892.      * buffer; it needs to be kept around in case it's a newline, so
  2893.      * yy_get_previous_state() will have with '^' rules active
  2894.      */
  2895.  
  2896.     yy___text = &yy_current_buffer->yy_ch_buf[1];
  2897.  
  2898.     return ( ret_val );
  2899.     }
  2900.  
  2901.  
  2902. /* yy_get_previous_state - get the state just before the EOB char was reached
  2903.  *
  2904.  * synopsis
  2905.  *     yy_state_type yy_get_previous_state();
  2906.  */
  2907.  
  2908. #ifndef YY_USE_CLASS
  2909. static yy_state_type yy_get_previous_state()
  2910. #else
  2911. long YY_lex_CLASS::yy_get_previous_state_()
  2912. #endif
  2913.     {
  2914.     register yy_state_type yy_current_state;
  2915.     register YY_lex_CHAR *yy_cp;
  2916.  
  2917. /* % code to get the start state into yy_current_state goes here */ 
  2918.     register YY_CHAR *yy_bp = yy___text;
  2919.  
  2920.     yy_current_state = yy_start;
  2921.     if ( yy_bp[-1] == '\n' )
  2922.     ++yy_current_state;
  2923.     yy_state_ptr = yy_state_buf;
  2924.     *yy_state_ptr++ = yy_current_state;
  2925. #line 683 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2926.  
  2927.     for ( yy_cp = yy___text + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  2928.     {
  2929. /* % code to find the next state goes here */ 
  2930.     register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1);
  2931.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2932.         {
  2933.         yy_current_state = yy_def[yy_current_state];
  2934.         if ( yy_current_state >= 530 )
  2935.         yy_c = yy_meta[yy_c];
  2936.         }
  2937.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  2938.     *yy_state_ptr++ = yy_current_state;
  2939. #line 687 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2940.     }
  2941.  
  2942. #ifndef YY_USE_CLASS
  2943.     return ( yy_current_state );
  2944. #else
  2945.     return (long)( yy_current_state );
  2946. #endif
  2947.     }
  2948.  
  2949.  
  2950. /* yy_try_NUL_trans - try to make a transition on the NUL character
  2951.  *
  2952.  * synopsis
  2953.  *     next_state = yy_try_NUL_trans( current_state );
  2954.  */
  2955.  
  2956. #ifndef YY_USE_CLASS
  2957. #ifdef YY_USE_PROTOS
  2958. static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
  2959. #else
  2960. static yy_state_type yy_try_NUL_trans( yy_current_state )
  2961. register yy_state_type yy_current_state;
  2962. #endif
  2963. #else
  2964. long YY_lex_CLASS::yy_try_NUL_trans_(long yy_current_state_)
  2965. #endif
  2966.  
  2967.     {
  2968. #ifndef YY_USE_CLASS
  2969. #else
  2970.     yy_state_type yy_current_state=(yy_state_type)yy_current_state_;
  2971. #endif
  2972.     register int yy_is_jam;
  2973. /* % code to find the next state, and perhaps do backtracking, goes here */ 
  2974.  
  2975.     register YY_CHAR yy_c = 1;
  2976.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2977.     {
  2978.     yy_current_state = yy_def[yy_current_state];
  2979.     if ( yy_current_state >= 530 )
  2980.         yy_c = yy_meta[yy_c];
  2981.     }
  2982.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  2983.     *yy_state_ptr++ = yy_current_state;
  2984.     yy_is_jam = (yy_current_state == 529);
  2985. #line 721 "/u/icdc/rdt/tools/lib/flexskel.cc"
  2986.  
  2987. #ifndef YY_USE_CLASS
  2988.     return ( yy_is_jam ? 0 : yy_current_state );
  2989. #else
  2990.     return (long)( yy_is_jam ? 0 : yy_current_state );
  2991. #endif
  2992.     }
  2993.  
  2994. #ifndef YY_USE_CLASS
  2995. #ifdef YY_USE_PROTOS
  2996. static void yyunput( YY_lex_CHAR c, register YY_lex_CHAR *yy_bp )
  2997. #else
  2998. static void yyunput( c, yy_bp )
  2999. YY_lex_CHAR c;
  3000. register YY_lex_CHAR *yy_bp;
  3001. #endif
  3002. #else
  3003. void YY_lex_CLASS::yyunput( YY_lex_CHAR c, YY_lex_CHAR *yy_bp )
  3004. #endif
  3005.  
  3006.     {
  3007.     register YY_lex_CHAR *yy_cp = yy_c_buf_p;
  3008.  
  3009.     /* undo effects of setting up yy___text */
  3010.     *yy_cp = yy_hold_char;
  3011.  
  3012.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  3013.     { /* need to shift things up to make room */
  3014.     register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  3015.     register YY_lex_CHAR *dest =
  3016.         &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
  3017.     register YY_lex_CHAR *source =
  3018.         &yy_current_buffer->yy_ch_buf[number_to_move];
  3019.  
  3020.     while ( source > yy_current_buffer->yy_ch_buf )
  3021.         *--dest = *--source;
  3022.  
  3023.     yy_cp += dest - source;
  3024.     yy_bp += dest - source;
  3025.     yy_n_chars = yy_current_buffer->yy_buf_size;
  3026.  
  3027.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  3028.         YY_FATAL_ERROR( "flex scanner push-back overflow" );
  3029.     }
  3030.  
  3031.     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  3032.     yy_cp[-2] = '\n';
  3033.  
  3034.     *--yy_cp = c;
  3035.  
  3036.     /* note: the formal parameter *must* be called "yy_bp" for this
  3037.      *       macro to now work correctly
  3038.      */
  3039.     YY_DO_BEFORE_ACTION; /* set up yy___text again */
  3040.     }
  3041.  
  3042. #ifndef YY_USE_CLASS
  3043. #ifdef __cplusplus
  3044. static int yyinput()
  3045. #else
  3046. static int input()
  3047. #endif
  3048. #else
  3049. int YY_lex_CLASS::input()
  3050. #endif
  3051.     {
  3052.     int c;
  3053.     YY_lex_CHAR *yy_cp = yy_c_buf_p;
  3054.  
  3055.     *yy_cp = yy_hold_char;
  3056.  
  3057.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  3058.     {
  3059.     /* yy_c_buf_p now points to the character we want to return.
  3060.      * If this occurs *before* the EOB characters, then it's a
  3061.      * valid NUL; if not, then we've hit the end of the buffer.
  3062.      */
  3063.     if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  3064.         /* this was really a NUL */
  3065.         *yy_c_buf_p = '\0';
  3066.  
  3067.     else
  3068.         { /* need more input */
  3069.         yy___text = yy_c_buf_p;
  3070.         ++yy_c_buf_p;
  3071.  
  3072.         switch ( yy_get_next_buffer() )
  3073.         {
  3074.         case EOB_ACT_END_OF_FILE:
  3075.             {
  3076.             if ( yywrap() )
  3077.             {
  3078.             yy_c_buf_p = yy___text + YY_MORE_ADJ;
  3079.             return ( EOF );
  3080.             }
  3081.  
  3082.             YY_NEW_FILE;
  3083. #ifndef YY_USE_CLASS
  3084. #ifdef __cplusplus
  3085.             return ( yyinput() );
  3086. #else
  3087.             return ( input() );
  3088. #endif
  3089. #else
  3090.             return ( input() );
  3091. #endif
  3092.             }
  3093.             break;
  3094.  
  3095.         case EOB_ACT_CONTINUE_SCAN:
  3096.             yy_c_buf_p = yy___text + YY_MORE_ADJ;
  3097.             break;
  3098.  
  3099.         case EOB_ACT_LAST_MATCH:
  3100. #ifndef YY_USE_CLASS
  3101. #ifdef __cplusplus
  3102.             YY_FATAL_ERROR( "unexpected last match in yyinput()" );
  3103. #else
  3104.             YY_FATAL_ERROR( "unexpected last match in input()" );
  3105. #endif
  3106. #else
  3107.             YY_FATAL_ERROR( "unexpected last match in YY_lex_CLASS::input()" );
  3108. #endif
  3109.         }
  3110.         }
  3111.     }
  3112.  
  3113.     c = *yy_c_buf_p;
  3114.     yy_hold_char = *++yy_c_buf_p;
  3115.  
  3116.     return ( c );
  3117.     }
  3118.  
  3119.  
  3120. #ifndef YY_USE_CLASS
  3121. #ifdef YY_USE_PROTOS
  3122. void YY_lex_RESTART( FILE *input_file )
  3123. #else
  3124. void YY_lex_RESTART( input_file )
  3125. FILE *input_file;
  3126. #endif
  3127. #else
  3128. void YY_lex_CLASS::YY_lex_RESTART ( FILE *input_file )
  3129. #endif
  3130.  
  3131.     {
  3132.     YY_lex_INIT_BUFFER( yy_current_buffer, input_file );
  3133.     YY_lex_LOAD_BUFFER_STATE();
  3134.     }
  3135.  
  3136.  
  3137. #ifndef YY_USE_CLASS
  3138. #ifdef YY_USE_PROTOS
  3139. void YY_lex_SWITCH_TO_BUFFER( YY_BUFFER_STATE new_buffer )
  3140. #else
  3141. void YY_lex_SWITCH_TO_BUFFER( new_buffer )
  3142. YY_BUFFER_STATE new_buffer;
  3143. #endif
  3144. #else
  3145. void YY_lex_CLASS::YY_lex_SWITCH_TO_BUFFER( YY_BUFFER_STATE new_buffer )
  3146. #endif
  3147.  
  3148.     {
  3149.     if ( yy_current_buffer == new_buffer )
  3150.     return;
  3151.  
  3152.     if ( yy_current_buffer )
  3153.     {
  3154.     /* flush out information for old buffer */
  3155.     *yy_c_buf_p = yy_hold_char;
  3156.     yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  3157.     yy_current_buffer->yy_n_chars = yy_n_chars;
  3158.     }
  3159.  
  3160.     yy_current_buffer = new_buffer;
  3161.     YY_lex_LOAD_BUFFER_STATE();
  3162.  
  3163.     /* we don't actually know whether we did this switch during
  3164.      * EOF (yywrap()) processing, but the only time this flag
  3165.      * is looked at is after yywrap() is called, so it's safe
  3166.      * to go ahead and always set it.
  3167.      */
  3168.     yy_did_buffer_switch_on_eof = 1;
  3169.     }
  3170.  
  3171.  
  3172. #ifndef YY_USE_CLASS
  3173. #ifdef YY_USE_PROTOS
  3174. void YY_lex_LOAD_BUFFER_STATE( void )
  3175. #else
  3176. void YY_lex_LOAD_BUFFER_STATE()
  3177. #endif
  3178. #else
  3179. void YY_lex_CLASS::YY_lex_LOAD_BUFFER_STATE(  )
  3180. #endif
  3181.  
  3182.     {
  3183.     yy_n_chars = yy_current_buffer->yy_n_chars;
  3184.     yy___text = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  3185.     yy___in = yy_current_buffer->yy_input_file;
  3186.     yy_hold_char = *yy_c_buf_p;
  3187.     }
  3188.  
  3189.  
  3190. #ifndef YY_USE_CLASS
  3191. #ifdef YY_USE_PROTOS
  3192. YY_BUFFER_STATE YY_lex_CREATE_BUFFER( FILE *file, int size )
  3193. #else
  3194. YY_BUFFER_STATE YY_lex_CREATE_BUFFER( file, size )
  3195. FILE *file;
  3196. int size;
  3197. #endif
  3198. #else
  3199. YY_BUFFER_STATE YY_lex_CLASS::YY_lex_CREATE_BUFFER( FILE *file, int size )
  3200. #endif
  3201.  
  3202.     {
  3203.     YY_BUFFER_STATE b;
  3204.  
  3205.     b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
  3206.  
  3207.     if ( ! b )
  3208.     YY_FATAL_ERROR( "out of dynamic memory in YY_lex_CREATE_BUFFER()" );
  3209.  
  3210.     b->yy_buf_size = size;
  3211.  
  3212.     /* yy_ch_buf has to be 2 characters longer than the size given because
  3213.      * we need to put in 2 end-of-buffer characters.
  3214.      */
  3215.     b->yy_ch_buf = (YY_lex_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
  3216.  
  3217.     if ( ! b->yy_ch_buf )
  3218.     YY_FATAL_ERROR( "out of dynamic memory in YY_lex_CREATE_BUFFER()" );
  3219.  
  3220.     YY_lex_INIT_BUFFER( b, file );
  3221.  
  3222.     return ( b );
  3223.     }
  3224.  
  3225.  
  3226. #ifndef YY_USE_CLASS
  3227. #ifdef YY_USE_PROTOS
  3228. void YY_lex_DELETE_BUFFER( YY_BUFFER_STATE b )
  3229. #else
  3230. void YY_lex_DELETE_BUFFER( b )
  3231. YY_BUFFER_STATE b;
  3232. #endif
  3233. #else
  3234. void YY_lex_CLASS::YY_lex_DELETE_BUFFER( YY_BUFFER_STATE b )
  3235. #endif
  3236.  
  3237.     {
  3238.     if ( b == yy_current_buffer )
  3239.     yy_current_buffer = (YY_BUFFER_STATE) 0;
  3240.  
  3241.     free( (char *) b->yy_ch_buf );
  3242.     free( (char *) b );
  3243.     }
  3244.  
  3245.  
  3246. #ifndef YY_USE_CLASS
  3247. #ifdef YY_USE_PROTOS
  3248. void YY_lex_INIT_BUFFER( YY_BUFFER_STATE b, FILE *file )
  3249. #else
  3250. void YY_lex_INIT_BUFFER( b, file )
  3251. YY_BUFFER_STATE b;
  3252. FILE *file;
  3253. #endif
  3254. #else
  3255. void YY_lex_CLASS::YY_lex_INIT_BUFFER( YY_BUFFER_STATE b, FILE *file)
  3256. #endif
  3257.  
  3258.     {
  3259.     b->yy_input_file = file;
  3260.  
  3261.     /* we put in the '\n' and start reading from [1] so that an
  3262.      * initial match-at-newline will be true.
  3263.      */
  3264.  
  3265.     b->yy_ch_buf[0] = '\n';
  3266.     b->yy_n_chars = 1;
  3267.  
  3268.     /* we always need two end-of-buffer characters.  The first causes
  3269.      * a transition to the end-of-buffer state.  The second causes
  3270.      * a jam in that state.
  3271.      */
  3272.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  3273.     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
  3274.  
  3275.     b->yy_buf_pos = &b->yy_ch_buf[1];
  3276.  
  3277.     b->yy_eof_status = EOF_NOT_SEEN;
  3278.     }
  3279. #line 562 "scan.l"
  3280.  
  3281.  
  3282.  
  3283. int yywrap()
  3284.  
  3285.     {
  3286.     if ( --num_input_files > 0 )
  3287.     {
  3288.     set_input_file( *++input_files );
  3289.     return ( 0 );
  3290.     }
  3291.  
  3292.     else
  3293.     return ( 1 );
  3294.     }
  3295.  
  3296.  
  3297. /* set_input_file - open the given file (if NULL, stdin) for scanning */
  3298.  
  3299. void set_input_file( file )
  3300. char *file;
  3301.  
  3302.     {
  3303.     if ( file )
  3304.     {
  3305.     infilename = file;
  3306.     yyin = fopen( infilename, "r" );
  3307.  
  3308.     if ( yyin == NULL )
  3309.         lerrsf( "can't open %s", file );
  3310.     }
  3311.  
  3312.     else
  3313.     {
  3314.     yyin = stdin;
  3315.     infilename = "<stdin>";
  3316.     }
  3317.     }
  3318.  
  3319.